#include <iostream>
#include <cstdio>
using namespace std;
int main(){
int n;
scanf("%d",&n);
int arr[13][13]={0};
for(int i=0;i<n;i++){
arr[i][i]=i+1;
}
for(int i=n-1;i>=0;i--){
for(int j=i+1;j<=n;j++){
arr[i][j]=arr[i+1][j]+arr[i][j-1];
}
}
for(int i=n-1;i>=0;i--){
for(int j=0;j<n;j++){
if(arr[i][j]==0){
printf("%5c",' ');
}
else{
printf("%5d",arr[i][j]);
}
}
if(i>0)
printf("\n");
}
return 0;
}
Description
输入一个整数n(n≤12),打印出如下要求的方阵:除掉右上到左下对角线上的数外的右下半个区域中每个元素等于左边的和上面的元素之和。每个元素场宽为5。左上半个区域为空。
Input
一个整数n(n≤12)
Output
n*n的方阵(场宽为5)。
Sample Input 1
4
Sample Output 1
4 3 7 2 5 12 1 3 8 20
Source
二维数组