用JAVA写数字金字塔

今年的蓝桥杯中我遇到了一道题是关于数字金字塔的,那时候在比赛时可能是各方面的因素有思路但是没有实现,直到今天回过头来看,其实只要思路正确了题目就会迎刃而解了,其实数字金字塔的的解题思路就是把金字塔分成两个直角三角形

如下所示:

     1
    12 1
   123 21
  1234 321
 12345 4321
123456 54321

左边的是6行的直角三角形,他的规律就是每行的最大数就等于行数,那么用代码实现就是:

for(int i=1;i<=6;i++){ //外层循环控制行数
for(int j=1;j<=i;j++){ //打印左边的三角形,保证每行的最大数等于行数
System.out.print(j);
}}

右边的是5行的直角三角形,他的规律就是每行输出的数从左到右逆序输出就是大的在前小的在后,而且最大的数比行数小1,第一行不输出,那我们用代码实现就是:

for(int j=i-1;j>=1;j--){
System.out.print(j);
		}

大体思路就这样实现了,那么把代码整合下,我们的题目也就解出来了,如下所示:

public class angle {

	public static void main(String[] args){
		for(int i=1;i<=6;i++){ //外层循环控制行数
			//打印空格
			for(int j=1;j<=6-i;j++){
				System.out.print(" ");
			}
		
		//打印数字,左边的三角形
		for(int j=1;j<=i;j++){
			System.out.print(j);
		}
		//后面数字的规律
		for(int j=i-1;j>=1;j--){
			System.out.print(j);
		}
		System.out.println(); //换行
	}
	}
}

输出如下所示:

     1
    121
   12321
  1234321
 123454321
12345654321

总结了一下,写代码其实就是思路有了,那么写代码就会迎刃而解,没有思想的撸代码就是流氓。得意

不管是用什么编程语言,拿到题目先要分析思路,找出最快的解决方法,那么解题就会很快的了,千万不要拿到题边撸代码边想题目,那样耗时又不讨好。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值