PTA:9-1 打印杨辉三角(分数 20)

本题要求按照规定格式打印前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;
}

提交结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值