各种各样的杨辉三角题目集合

第一题(源:PTA)

输入格式
输入在一行中给出N(1≤N≤10)。

输出格式
以正三角形的格式输出前N行杨辉三角。每个数字占固定4位。

输入样例:

1
6

输出样例:

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

关键点注释

%4d的格式输出每个数字,同时不要忘记每行前面有空格(最后一行0个,从下往上,每行空格数+1)

第一题AC代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <stdio.h>
int main()
{
int n;scanf("%d",&n);
int a[n][n];
for(int i=0;i<n;++i)
{
for(int j=0;j<n;++j)
a[i][j]=0;
}
for(int i=0;i<n;++i)
{
a[i][0]=1;//每行第一个数字为1
a[i][i]=1;//每行最后一个数字为1
}
//计算其余数字a[i][j]=a[i-1][j-1]+a[i-1][j]
for(int i=2;i<n;++i)
{
for(int j=1;j<n-1;++j)
{
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
}
//只要数字非0就打印
for(int i=0;i<n;++i)
{
//别忘了打印每一行的空格
for(int k=n;k>i+1;--k)
printf(" ");
//再打印数字
for(int j=0;j<n;++j)
{
if(a[i][j]!=0)
printf("%4d",a[i][j]);
}
printf("\n");
}

}

第二题

输入输出格式
输入描述:
1
输入你想输出杨辉三角形的行数n(n<=20);当输入0时程序结束.
输出描述:
1
对于每一个输入的数,输出其要求的三角形.每两个输出数中间有一个空格.每输完一个三角形换行.
输入输出样例
输入样例#:
1
2
3
5
7
0
输出样例#:
1
2
3
4
5
6
7
8
9
10
11
12
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
AC代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <stdio.h>
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
if(n==0)
break;
int a[n][n];
for(int i=0;i<n;++i)
for(int j=0;j<n;++j)
a[i][j]=0;
for(int i=0;i<n;++i)
{
a[i][0]=1;
a[i][i]=1;
}
for(int i=2;i<n;++i)
{
for(int j=1;j<i;++j)
a[i][j]=a[i-1][j]+a[i-1][j-1];
}


for(int i=0;i<n;++i)
{
for(int j=0;j<n;++j)
{
if(a[i][j]!=0)
printf("%d ",a[i][j]);
}
printf("\n");
}
}
}
凡希 wechat
喜欢所以热爱,坚持干货分享,欢迎订阅我的微信公众号
呐,请我吃辣条