用JAVA写数字金字塔

一个人想着一个人 提交于 2019-12-02 06:58:42

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

如下所示:

     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

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

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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!