不积跬步无以至千里,不积小流无以成江海。做好一件事,要从最简单的开始。
下面是比较经典的一个有关循环应用的题目:
请编写程序,打印出金字塔图案:
首先,我们可以看到,金字塔的每一层都是由一定数量的空格和星号组成的,所以我们的任务就是找到总层数(n),第i层,空格数(x)以及星号数(y)的联系。为了方便找到关系,我们可以将原图分析成如下形式:
如果第一眼看不出来,我们可以列个表格找找规律。
n—5;i—1;x—4;y—1;
n—5;i—2;x—3;y—3;
n—5;i—3;x—2;y—5;
n—5;i—4;x—1;y—7;
n—5;i—5;x—0;y—9;
仔细观察可得,x=n-i;y=2*i-1;
得到这个关系后,就可以着手开始编码了
具体代码如下:
import java.util.Scanner;
public class _1_1 {
public static void main(String[] args){
//正立金字塔
int int i,j,k,n;
Scanner input = new Scanner(System.in);
System.out.println("请输入金字塔的层数:");
n=input.nextInt();
//第一层循环控制金字塔的层数
for(i=1;i<=5;i++){
//第二层循环控制每行的空格数
for(j=1;j<=n-i;j++){
System.out.print(" ");
}
//第二层循环控制每行的星星数
for(k=1;k<=(2*i-1);k++){
System.out.print("*");
}
System.out.print("\n");//输出完一层后换行
}
}
在了解了解题思路后,我们就可以着手写一个倒立金字塔的程序,当然了,正立金字塔和倒立金字塔的空格星星的数量关系是不一样的,具体数量关系不再赘述,倒立金字塔主干代码如下:
Scanner input = new Scanner(System.in); System.out.println("请输入金字塔的层数:"); n = input.nextInt(); m=n*2; //外层循环控制金字塔层数 for(i=1;i<=n;i++){ //内层循环控制空格和星星的数量 for(j=1;j<i;j++){ System.out.print(" "); } //星星 for(k=1;k<=m-i;k++){ System.out.print("*"); } m--; System.out.println("\n"); }
更多推荐
金字塔图案——Java
发布评论