杨辉三角的实现

想要打印出杨辉三角,那么就得先观察它的规律

 我们可发现他每一行的数的个数即为他所对应的行数,且首项和尾项都为1,那么我们可以先用一个数来表示

 接下来我们要找到其内部元素之间的规律

如下图:

 那么我们就可以很容易的得出arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j],很多的这种一下子看不出的规律,我们都可以先写一个实例出来,然后就容易推导出来了。

当然,我们这里要从第二行开始

 接下来我们的打印结果为

 我们还要将其的格式对整齐

于是便在其每行的第一个元素加入空格 ,因为我们n=10,最后一行最大的数为三位数,且我们要像左对其,所以我们用%-3d ,故最后一行的大小为2+4*10=42,第一行为2*9+3=21,刚好居中。

我们开头可以声明n的值,因为数组中不可放入变量,但这样做我们依旧可以随意改变n的值

所以最终的代码为:

#define n 10

int main()
{
    
    int arr[n][n] = { 0 };
    int i = 0;
    int j = 0;
    int m = 0;
    for (i = 0; i < n; i++)
    {

        arr[i][0] = 1;
        for (j = 0; j <= i; j++)
        {

            arr[i][i] = 1;
            if(i>=2)
                arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
            
        }
    }

    for (i = 0; i < n; i++)
    {
        m = n - i;
        while (m)
        {
            printf("  ");
            m--;
        }
        for (j = 0; j <= i; j++)
        {
            printf("%-3d ", arr[i][j]);
        }
        printf("\n");
    }


    return 0;
}

最终的结果为

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值