杨辉三角形

第一种做法:
输出杨辉三角,思路:n行有n个数,每行最后一个数和第一个数均为1,
每行其他的数=上一行对应列数的数值+上一行前一个数


#include<stdio.h>
#define N 10
int main(){
    int i,j;
    int a[N+1][N+1];//这里为10
    for(i=1;i<N+1;i++){ //i从1到10,j从1到i,抛弃0
               a[i][1]=1;
               a[i][i]=1;
    }
    for(i=1;i<N+1;i++){//i从1到10,j从2到i-1,抛弃0
        for(j=2;j<i;j++){
            a[i][j]=a[i-1][j]+a[i-1][j-1];
        }
    }
    //输出,可以只输出部分行列,这里舍弃了第0列和第0行
    //i从1到10,j从1到i,抛弃0
    for(i=1;i<=10;i++){
        for(j=1;j<=i;j++){
            printf("%d ",a[i][j]);
        }printf("\n");
    }
    return 0;
}


这里写图片描述

第二种写法:
数组元素的序号是从0开始算的,所以数组中的0行0列的元素实际上
是杨辉三角形中第1行第1列的数据


#include<stdio.h>
#define N 10
int main(){
    int i,j,a[N][N];             //数组为10行10列
    for(i=0;i<N;i++){
        a[i][i]=1;            //使对角线元素的值为1
        a[i][0]=1;            //使第1列元素的值为1
    }
    for(i=2;i<N;i++){         //从第3行开始处理
        for(j=1;j<=i-1;j++){
            a[i][j]=a[i-1][j-1]+a[i-1][j];
        }
    }
    for(i=0;i<N;i++){
        for(j=0;j<=i;j++){
            printf("%6d",a[i][j]);    //输出数组各元素的值
        }
        printf("\n");
    }
    printf("\n");
    return 0;
}

这里写图片描述


PS:

打印等腰杨辉三角形

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值