黑马程序员技术交流社区
标题:
等差数列解决打印菱形图案
[打印本页]
作者:
Open
时间:
2016-4-2 23:08
标题:
等差数列解决打印菱形图案
学好数学会让很多算法都得到有效解决,本题的*符号便可使用等差数列求解,分析一下
1)这个图形, 总共有N行 可以分为两部分. 上面的三角和下面的三角
所以你要有两个循环 来控输出两个三角行数.
2)观察发现输出三角的时候要输出若干空格
一个有数目按一定规律变化的星号
进一步发现 上面的三角从1-N 的数目变化组成了一个首项为1公差为1的等差数列 下面的N-... 是一 个首项
为 N-1 公差为1的数列 同道 上面的三角星号组成的是一个 首项为 1公差为2的等差数列
而下面的是 首项为 a1+(n-1)*d-2 公差为 2的数列
int n = 100;
for(int i=1;i<=n;i++){
for(int j=1;j<=n-i;j++){
System.out.print(" ");
}
for(int k=1;k<=2*i-1;k++){
System.out.print("*");
}
System.out.println();
}
for(int i=1;i<n-1;i++){
for(int j=1;j<=i;j++){ // 1 2 3 4
System.out.print(" ");
}
for(int k=1;k<=(1+(n-1)*2) - 2 + (i-1)*(-2);k++){
System.out.print("*");
}
System.out.println();
}
作者:
zapple926
时间:
2016-4-2 23:47
没怎么看懂,不过有时间好好研究研究
作者:
zhang3216858
时间:
2016-4-2 23:48
我刚学了for循环就看班里有人做出来,自己试了试没什么思路
作者:
性感不是骚
时间:
2016-4-3 00:10
给力,大神
作者:
兵蜂
时间:
2016-4-3 00:21
巧了,朋友我今天学的,也做了一个菱形,不过实现起来相对于你的方法,我是有点麻烦了,谢谢!!!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2