首页 > 其他 > 详细

杨辉三角问题

时间:2019-06-24 16:51:11      阅读:111      评论:0      收藏:0      [点我收藏+]

 

题目描述

按要求输入如下格式的杨辉三角

1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1

最多输出10层

输入

输入只包含一个正整数n,表示将要输出的杨辉三角的层数。

输出

对应于该输入,请输出相应层数的杨辉三角,每一层的整数之间用一个空格隔开

样例输入

5

样例输出

1
1 1
1 2 1
1 3 3 1
1 4 6 4 1

错误答案:
 1 #include<stdio.h>
 2 int main(){
 3     int Yhui[10][10];
 4     for(int i = 0; i < 10; i++){
 5         Yhui[i][0] = 1;
 6         Yhui[i][i] = 1;
 7         for(int j = 1; j < i; j++){
 8             Yhui[i][j] = Yhui[i-1][j-1] + Yhui[i-1][j];
 9         }
10     }
11     int num;
12     scanf("%d", &num);
13     if(num > 10){
14         printf("请输入小于10的整数!\n");
15         return 0;
16     }
17     for(int i = 0; i <= num; i++){
18         for(int j = 0; j <= i; j++){
19             printf("%d", Yhui[i][j]);
20             printf(" ");
21         }
22         printf("\n");
23     }
24     return 0;
25 }

因为没有考虑到i的取值,导致(i -1)越界,改了很久,正确答案如下:

 1 #include<stdio.h>
 2 int main(){
 3     int n, i, j;
 4     scanf("%d", &n);
 5     int a[n][n];
 6     for(i=0; i<n; i++){
 7         a[i][i] = 1;
 8         a[i][0] = 1;
 9     }
10     for(i=2; i<n; i++){
11         for(j=1; j<i; j++){
12             a[i][j] = a[i-1][j-1] + a[i-1][j];
13         }
14     }
15     for(i=0; i<n; i++){
16         for(j=0; j<=i; j++){
17             printf("%d ", a[i][j]);
18         }
19         printf("\n");
20     }
21     return 0;
22 }

 

杨辉三角问题

原文:https://www.cnblogs.com/narnia/p/11077565.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!