本题要求按照规定格式打印前N行杨辉三角。
输入格式:
输入在一行中给出N(1≤N≤10)。
输出格式:
以正三角形的格式输出前N行杨辉三角。每个数字占固定4位。
输入样例:
6
输出样哩:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
问题分析:
整个杨辉三角形包括第一行打印了一个数,第二行打印了两个数......第n行打印了n个数。我们需要写一个循环控制打印的行数然后在里面写一个内循环打印每一行的每一个数,可以看出数字的规律第一行的数是组合数c0 0,第二行的两个数分别是c1 0,c1 1,以此类推第n行的数为cn-1 0,cn-1 1......cn-1 n-1每一行的内循环是求出这个组合数并以%4d的形式打印出来。需要注意的是第一行的前面n-行数-1个空格。
#include<stdio.h>
int main(){
int n,fenmu,fenzi,zuheshu;
scanf("%d",&n);
for(int i=0;i<n;i++){
for(int k=n-i;k>1;k--){
printf(" ");
}
for(int m=0;m<=i;m++){//本循环是求组合数并以%4d的形式打印出来
fenmu=1;
fenzi=1;
zuheshu=1;
for(int l=i-m+1;l<=i;l++){
fenzi*=l;
}
for(int l=1;l<=m;l++){
fenmu*=l;
}
zuheshu=fenzi/fenmu;
printf("%4d",zuheshu);
}
printf("\n");
}
return 0;
}
提交结果: