关于杭电OJ 2032的小体会

版权声明:小白见解,谁看得上 https://blog.csdn.net/weixin_43368425/article/details/83216671

在这里插入图片描述

身为一名程序小白来说,在刚学习完一个知识点的时候,最好的巩固方法莫过于解决一道关于该知识点的题目了(不才自认为)。因此,在初步接触了二维数组之后,很幸运地遇到了这道虽不算太难但是又很有趣的题目,因为杨辉三角应该足以说是很经典的数学案例了吧。

言归正传,关于解决问题的代码思路,已经比较详细地记录在了代码当中。
而且经过实践证明呢,它在提交之后获得的结果也是Acceped,所以说代码的正确性应该是没有问题的。
另外,每次写完代码之后都习惯性地将所写的代码格式尽量规范化,增强其可读性。
代码如下:
 

#include<stdio.h>
int main()
{
    int a[30][30] = {0};
    //设置一个空二维数组
    int i, j, n;
    //n即为输入的个数,其余两个变量用来控制循环
    while(scanf("%d", &n)!=EOF)
    //基本控制输入格式
    {
        for(i = 0; i < n; i++)//控制行数
        {
            for(j = 0; j <= i; j++)
            //对于每行的具体输出进行安排
            {
                if(j == 0 || j == i)
                    a[i][j] = 1;
//每行的第一位和最后一位数字均为1
                else
                    a[i][j] = a[i-1][j-1] + a[i-1][j];
//参考杨辉三角的标准样例可以得到此规律
//下一行除去两头的数总是等于它正上方的数加上它左上方的数
            }
        }
        for(i = 0; i < n; i++)//此循环则是为了控制输出
        {
            for(j = 0; j <= i; j++)
            {
                if(j == i)
                    printf("%d\n",a[i][j]);
//很容易看明白,当i和j相等时,即代表完成了一行输出
                else
                    printf("%d ",a[i][j]);
            }
        }
        printf("\n");//题目的格式要求
    }
    return 0;
}

OVER

猜你喜欢

转载自blog.csdn.net/weixin_43368425/article/details/83216671