java 编程打印数字斜塔
想法
使用一个二维数组,将数字按照斜塔存储进数组,随后遍历数组输出。
按照数字从小到大逐个存储进数组,斜线划分层数,如图五层,逐层存储(从第五层开始),第一次存储的是第五层一个元素占一列,第二次存储的是第四层两个元素占两列,可用列数j==第几次存储层来判断当前层是否存储完毕。若当前层存储完毕,则列数j置0,层数c-1,存储上一层数据。
通过用户输入层数n进行输出n层数字斜塔。
代码如下
代码片
.
// An highlighted block
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
System.out.println("请输入层数");
Scanner in = new Scanner(System.in); // 从键盘接收数据
int n,c,i,j,t=0;
n=in.nextInt();//n决定数字塔层数
int[][] num=new int[10][10];
//二维数组赋值存储数字塔
for(c=n-1;c>=0;c--)//层数控制
{
j=0;i=c;
num[c][j]=t+1;//将前一层最后一个元素值+1得到当前层第一个元素值
while(j!=n-c-1)//当前层数据未存储完毕则继续循环
{
num[i+1][j+1]=num[i][j]+1;
i++;j++;
}
t=num[i][j];//保存每层最后一个元素
}
//输出数字塔
for(i=0;i<n;i++)
{
System.out.print("\n");
for(j=0;j<=i;j++)
System.out.print(num[i][j]+"\t");
}
}
}