JAVA 输出 1 3 6 10 15 ....

近期重新翻看Java书本,发现一个好玩的程序。


看网上的好多都是,把这些数存在数组里面,然后再通过循环提取出来,这样太糙了。

下面是我的代码:


import java.util.Scanner;

/**  
* @author NEOSONG
* @date Sep 25, 2017 
* 9:03:06 PM
* information :
* 输出
* 1 3 6 10 15
* 2 5 9 14
* 4 8 13     
* 7 12      
* 11      

*

核心代码

Scanner reader=new Scanner(System.in);
System.out.println("请输入行数:");
int n=reader.nextInt();      
int key=2;          //定义行差值key,初始值为2
int num=0;          //保存数据,初始值为0
int num_row=1;      //定义num_row来记录行数,初始值为1
int num_first=1;    //定义num_first,用与表示每行的第一个数
int num_y=1;        //定义num_y,用于表示第一列数之间的差值,初始值为1
for(int i=n;i>=1;i--){          //n行数
num=num_first;               //循环开始,重新定义num
key=num_row+1;               //通过观察发现,每行开始时,第一个差值是行数+1
for(int j=1;j<=i;j++){      //用于控制每行输出的个数
System.out.print(num+" ");
num+=key;                
key++;                   //差值自增
}
System.out.println();
num_row++;                   //输出完一行之后,num_row自增
num_first+=num_y;            //num_first变化
num_y++;                     //列差值变化
}


通过这一个小程序,也是明白了编程不可急躁,要细心的分析问题,然后想办法解决问题。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值