A1048. 数字三角形
问题描述
输入一个边长,打印出旋转序列的三角图形。
输入格式
边长n,其中1<=n<=10
输出格式
数字三角形,一共n行,第i(1<=i<=n)行有i个数,每行相邻的两个数用一个空格符隔开
样例输入
4
样例输出
1
2 9
3 10 8
4 5 6 7
package www.tsinsen.com; import java.util.Scanner; public class A1048 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner scan=new Scanner(System.in); int n=scan.nextInt(); int[][] arr=new int[n][n]; int[][] flag=new int[n][n]; for(int i=0;i<n;i++){ for(int j=0;j<=i;j++){ flag[i][j]=1; } } int count=1; arr[0][0]=1; flag[0][0]=0; int i=0,j=0; while(count<((1+n)*n)/2){ while(i+1<n&&flag[i+1][j]==1){ arr[++i][j]=++count; flag[i][j]=0; } while(j+1<n&&flag[i][j+1]==1){ arr[i][++j]=++count; flag[i][j]=0; } while(j-1>=0&&i-1>=0&&flag[i-1][j-1]==1){ arr[--i][--j]=++count; flag[i][j]=0; } } for(int ii=0;ii<n;ii++){ for(int jj=0;jj<=ii;jj++){ if(jj==ii){ System.out.print(arr[ii][jj]); } else{ System.out.print(arr[ii][jj]+" "); } } System.out.println(); } } }
浙公网安备 33010602011771号