黑马程序员技术交流社区

标题: 老师的作业 不会做 有能搞定的吗?大牛 [打印本页]

作者: zhouzhou    时间: 2015-5-14 20:19
标题: 老师的作业 不会做 有能搞定的吗?大牛
输出 n=6 的三角数字阵
                        1        
                        2  3  
                        4  5  6
                        7  8  9  10
                        11 12 13 14 15
                        16 17 18 19 20 21
这个初级的能搞定吗?

捕获.PNG (5.06 KB, 下载次数: 40)

捕获.PNG

作者: pvbj0314    时间: 2015-5-14 20:37
应该先考虑如果你要写这么个字阵需要知道哪些条件吧?
作者: 小风1993    时间: 2015-5-14 20:42
  1. import java.util.Scanner;

  2. public class Test1 {
  3.         public static void main(String[] args) {
  4.                 Scanner sc = new Scanner(System.in);
  5.                 int a = sc.nextInt();
  6.                 int sum=1;
  7.                 for(int i=1;i<=a;i++){
  8.                         for(int j=0;j<i;j++){
  9.                                 System.out.print(sum+++" ");
  10.                         }
  11.                         System.out.println();
  12.                 }
  13.         }
  14. }
复制代码
虽然我不相信你不会做,但是我还是做了一下
作者: shentan000    时间: 2015-5-14 20:42
看看~~~支持
作者: 夕阳的刻痕    时间: 2015-5-14 21:07
你又来水了。。。
作者: shao122791159    时间: 2015-5-14 21:10
本帖最后由 shao122791159 于 2015-5-14 21:16 编辑

虽然我也不相信你不会做,但是我也跟着做了一下        void run()
        {
                int k = 1;
                for (int i=0;i<6 ;i++ )
                {
                        for (int j=0;j<=i ;j++ )
                        {
                                System.out.print(k+"\t        ");
                                k++;
                        }
                        System.out.println();
                }
        }


作者: 我干阿衰    时间: 2015-5-14 21:14
别水别水。。。。。。。。。。。。。。。。

作者: tanzhixue    时间: 2015-5-14 21:26
太水了 吧 哈哈
作者: yapo    时间: 2015-5-14 21:27
方法一:
           public class Test {
        public static void main(String[] args) {
               int z = 0; //定义计数器z,z就是我们要打印的数
                        for(int i =1; i <= 6;i++)//外循环控制打印的行数(6行)
                        {
                                for(int j = 1; j <= i; j++)//内循环控制没行打印个数
                                {
                                        System.out.print(++z+"\t");//z每打印一次值增加1,每行是数量是j,打印j此换行
                                }
                                System.out.println("");
                        }
                       
                }
        }



方法二:
例如:
x为行数,     f(x)为每一行的最大值
f(x)-f(x-1)=x
f(x-1)-f(x-2)=x-1
f(2)-f(1)=2
用数学叠加方法可以计算出:(x*x-x+2)/2为第x行的最小值,(x*x+x)/2为第x行的最大值

for(int x=1;x<=6;x++)  //打6行
                {
                        for (int y=(x*x-x+2)/2;y<=((x*x+x)/2);y++ ) //每行从最小值打到最大值
                        {
                                System.out.print(y+"\t");
                        }
                        System.out.println();


作者: Super_Nos    时间: 2015-5-14 21:27

Scanner sc = new Scanner(System.in);
                 int n, num;
                 while(sc.hasNext()){
                         n = sc.nextInt();
                         num = 1;
                         flag:
                         for(int i = 1;  ; i ++){
                                 for(int j = 0; j < i; j ++){
                                         System.out.print((num ++) + "\t");
                                         if(num > n)
                                                 break flag;
                                 }
                                 System.out.println();
                         }
                 }
作者: wangyu    时间: 2015-5-14 21:36
直接一排输出语句   简单易懂的搞定它
作者: fenglinluomu    时间: 2015-5-14 21:40
水经验呀
作者: 赵旗    时间: 2015-5-14 21:58
这个很简单好吧
作者: gaoer    时间: 2015-5-14 22:07
有点水啊 ,,,,,
作者: 黑马LM    时间: 2015-5-14 22:08
自己好好想想
作者: 魔蝎座    时间: 2015-5-14 22:10
在for循环外面定义一个变量,初始值为1,再利用打印三角形的原理定义两个for循环,打印这个变量,每打印一次就++一次
作者: 虎鹏    时间: 2015-5-14 22:28
虽然有点......但是加油啊
作者: 牛仔很忙fire    时间: 2015-5-14 22:44
3楼正解
作者: !85684009ex    时间: 2015-5-15 21:39
一点不难!有分我就告诉你!!!!
作者: 397543420    时间: 2015-5-15 21:47
0508的兄弟??????????
作者: cai937346660    时间: 2015-5-15 21:50
能不能不这么水经验啊- -
作者: 杨海林    时间: 2015-5-15 21:56
......................
作者: 黄冬    时间: 2015-5-15 22:01
学习了。。




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