测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

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; }
上一题 下一题