三种方式求杨辉三角形

来源:互联网 发布:python创建字典 编辑:程序博客网 时间:2024/05/22 17:24

第一种(推荐)

#include<stdio.h>#define N 10int main(){     int i,j,a[N][N];     for(i=0;i<4;i++)     {         for(j=0;j<=i;j++)        {              if(j==0||i==j)                 a[i][j]=1;             else                    a[i][j]=a[i-1][j]+a[i-1][j-1];                                  printf("%d ",a[i][j]);           }           printf("\n");    }}

第二种

#include <stdio.h>#define N 4int main(){     int i,j,a[N][N]={0};     //下面两个for循环赋值     for(i=0;i<N;i++)    {        a[i][0]=1;//第一列全为1         a[i][i]=1;//对角线全为1     }    for(i=1;i<N;i++)    {        for(j=1;j<i;j++)//从1开始,避免越界,是j<i,因为j==i已经在上面赋值了             a[i][j]=a[i-1][j-1]+a[i-1][j];     }            //下面for循环     for(i=0;i<N;i++)    {        for(j=0;j<=i;j++) //j<=i        {            printf("%d ",a[i][j]);//        }            printf("\n");    } return 0;}  

第三种

#include<stdio.h>int main(){    int n;    int i,j;    int a[100][50];    scanf("%d",&n);    a[0][0]=1;//只要为数组中的一个赋值了,其它的值均被复位0 ,如a[0][1]赋值为0了(下面要用)         //下面我们从i=1,j=1开始的,所以比起以前以0开始的难以理解一些,慢慢的推呗     for(i=1;i<=n;i++)//控制输出n行     {        for(j=1;j<=i;j++)//输出对角线左下角的数字         {            a[i][j]=a[i-1][j]+a[i-1][j-1];//a[1][1]= 0+1=1;a[2][1]=1+0=1,a[2][2]=0+1=1;a[3][1]=1+0=1...             printf("%d ",a[i][j]);        }        printf("\n");        }    return 0;}




0 0