A41015. 倒杨辉三角形
填空题
中等
知识点
题目描述
倒杨辉三角形
题目描述
Fans喜欢图形,而且喜欢把图形倒过来欣赏。有一次,他看见杨辉三角形 了,觉得很新鲜,于是就把它们大大小小地摆布出来。输入一些整数n(1≤n≤10),读入其每个整数,以该整数为行数,其画出来的倒杨辉三角形就是fans所喜欢欣赏的。Fans是手工做的,你却可以用编程更快捷地做出来,多爽啊!
输入格式
多组数据,每组数据占一行
输出格式
每个倒杨辉三角参考样例输出,每输出一个后必跟一空行
样例输入
5
3
样例输出
1 4 6 4 1
1 3 3 1
1 2 1
1 1
1
1 2 1
1 1
1
参考答案
#include <stdio.h>
int main(){
int N;
while(~scanf("%d",&N)){ //测试多组数据
int M =2*N-1;
int A[N][M];
int i ,j ,k;
for(i =0;i <N;i++){
for(j =0;j < M;j++){
A[i][j] =0;
}
}
int flag =N-1;
A[0][flag] =1;
for(i =1;i <N;i++){
for(j =0;j <M;j++){
if(j ==0){
A[i][j] =A[i-1][j+1]; //第一列的只需加右上角的元素,左上角五无元素
}else if(j ==M-1){
A[i][j] =A[i-1][j-1]; //最后一列的只需加左上角的元素,右上角五无元素
}else{
A[i][j] =A[i-1][j-1] +A[i-1][j+1];
}
}
}
for(i =N-1;i >=0;i--){ //从最后一行往第一行输出
for(j =0;j <M;j++){
if(A[i][j]){
printf("%3d",A[i][j]); //注意这里的输出格式
}else{
printf(" "); //这里是3个空格
}
}
printf("\n");
}
printf("\n"); //每次输出一个倒杨辉三角,要输出一个空行
}
return 0;
}
上一题
下一题