黑马程序员技术交流社区

标题: 代码问题,请指教 [打印本页]

作者: 吴超    时间: 2012-5-13 15:12
标题: 代码问题,请指教
  1. class DrawTriangle
  2. {
  3.         public static void main(String [] args)
  4.         {
  5.                 int num=9;
  6.                
  7.                 for (int row=1;row<=num ; row++)
  8.                 {
  9.                         int a=1;
  10.                         for (int right= 1; right<=row  ;right++ )
  11.                         {
  12.                                 System.out.print(" "+"");
  13.                         }
  14.                         for (int right=row;right<=num ;right++ )
  15.                         {
  16.                                 System.out.print(a++);       
  17.                         }
  18.                         for (int right=row;right<=num-1 ;right++ )
  19.                         {
  20.                                 a--;
  21.                                 System.out.print(a);
  22.                        
  23.                         }
  24.                         System.out.println(" ");
  25.                        
  26.                 }
  27.         }
  28. }
复制代码

作者: 黑马罗坚    时间: 2012-5-13 16:30

  1. public class DengHuiSJX {

  2. }
  3. /*
  4. /*
  5. //         12345678987654321
  6. //   123456787654321
  7. //    1234567654321
  8. //     12345654321
  9. //      123454321
  10. //       1234321
  11. //        12321
  12. //         121
  13. //          1
  14. */

  15. class DrawTriangle1
  16. {
  17.         public static void main(String [] args)
  18.         {
  19.                 int num=9;
  20.                
  21.                 for (int row=1;row<=num ; row++)
  22.                 {
  23.                         int a=1;
  24.                         for (int right= 1; right<=row  ;right++ )
  25.                         {
  26.                                 System.out.print(" "+"");
  27.                         }
  28.                         for (int right=row;right<=num ;right++ )
  29.                         {
  30.                                 System.out.print(a++);        
  31.                         }
  32.                         //上面a打印了加了个1 所以这里要减1
  33.                         a--;
  34.                         for (int right=row;right<=num-1 ;right++ )
  35.                         {
  36.                                 System.out.print(--a);
  37.                         
  38.                         }
  39.                         System.out.println(" ");
  40.                         
  41.                 }
  42.         }
  43. }
  44. class DrawTriangle
  45. {
  46.         public static void main(String [] args)
  47.         {
  48.                 StringBuilder sb=new StringBuilder("12345678987654321");
  49.                 System.out.println(sb.toString());
  50.                 for(int i=0;i<=8;i++){
  51.                         //前后添加空格是为了让下行比上行多一个空格和这个字符串平衡能求到原来的中间角标
  52.                         sb.insert(0, " ");
  53.                         sb.append(" ");
  54.                         //因为是角标所以中间值不需要加1 这里减1效果也是一样都能达到删除中间角标和
  55.                         //最靠进它的角标  也就删除字符串里最大的2数
  56.                         int mid=sb.length()/2;
  57.                         sb.delete(mid, mid+2);
  58.                         System.out.println(sb.toString());        
  59.                 }
  60.                
  61.         }
  62. }
复制代码

作者: 邱俊杰    时间: 2012-5-13 16:39
12345678998765432   // 看了你的代码,运行出来的结果是这样的哦。我想楼主的问题应该是少了最后的1吧?
  123456788765432
   1234567765432
    12345665432
     123455432
      1234432
       12332
        122
         1

for (int right=row;right<=num-1 ;right++ )  // 这里不需要减1  去掉就有这样的效果了
                        {
                                a--;
                                System.out.print(a);
                        
                        }

123456789987654321
  1234567887654321
   12345677654321
    123456654321
     1234554321
      12344321
       123321
        1221
         11




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2