1:
描述
输入一个整数n(n≤12),打印出如下要求的方阵:左上到右下对角线上的数与行数相同,右上半个区域中每个元素等于左边的和下面的元素之和。每个元素场宽为5。左下半个区域为空。
输入描述
一个整数n(n≤12)
输出描述
n*n的方阵(场宽为5)。
用例输入 1
4
用例输出 1
1 3 8 20 2 5 12 3 7 4
来源
二维数组
#include <bits/stdc++.h>
using namespace std;
int a[13][13];
int main() {
int n;
cin>>n;
for(int i=1;i<=n;i++){
a[i][i]=i;
}
for(int i=n;i>=1;i--){
for(int j=1;j<=n;j++){
if(i!=j){
a[i][j]=a[i][j-1]+a[i+1][j];
}
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(a[i][j]!=0){
printf("%5d",a[i][j]);
}
else{
cout<<" ";
}
}
cout<<endl;
}
return 0;
}
2:
描述
输入一个整数n(n≤12),打印出如下要求的方阵:除掉右上到左下对角线上的数外的右下半个区域中每个元素等于左边的和上面的元素之和。每个元素场宽为5。左上半个区域为空。
输入描述
一个整数n(n≤12)
输出描述
n*n的方阵(场宽为5)。
用例输入 1
4
用例输出 1
4 3 7 2 5 12 1 3 8 20
来源
二维数组
#include <bits/stdc++.h>
using namespace std;
int a[13][13];
int main() {
int n;
cin>>n;
for(int i=1;i<=n;i++){
a[i][i]=i;
}
for(int i=n;i>=1;i--){
for(int j=1;j<=n;j++){
if(i!=j){
a[i][j]=a[i][j-1]+a[i+1][j];
}
}
}
for(int i=n;i>=1;i--){
for(int j=1;j<=n;j++){
if(a[i][j]!=0){
printf("%5d",a[i][j]);
}
else{
cout<<" ";
}
}
cout<<endl;
}
return 0;
}