HDU 2032 杨辉三角

来源:互联网 发布:cctv直播软件下载 编辑:程序博客网 时间:2024/05/16 12:06

杨辉三角

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 40408    Accepted Submission(s): 16870


Problem Description
还记得中学时候学过的杨辉三角吗?具体的定义这里不再描述,你可以参考以下的图形:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
 

Input
输入数据包含多个测试实例,每个测试实例的输入只包含一个正整数n(1<=n<=30),表示将要输出的杨辉三角的层数。
 

Output
对应于每一个输入,请输出相应层数的杨辉三角,每一层的整数之间用一个空格隔开,每一个杨辉三角后面加一个空行。
 

Sample Input
2 3
 

Sample Output
11 111 11 2 1
 



这题感觉上还是觉得很简单的。。可是因为输出格式的问题我提交了好几次。。绝对你能在每行的最后一个数字上再加一个空格,这样你一辈子都过不了。。所以要用到if语句。。至于杨辉三角的规律,可以自己归纳。。当然,我是上网百度的。。所以。。。这题真的是简单到爆。。下面附上我的代码。。。



#include<stdio.h>int main(){    int a[31][31],i,j,n;    for(i=0;i<30;i++)     for(j=0;j<30;j++)      a[i][j]=0;    for(i=0;i<30;i++)    {     for(j=0;j<=i;j++)     {      if(j<1)a[i][j]=1;      else if(i==0)break;      else      a[i][j]=a[i-1][j-1]+a[i-1][j];     }    }    while(~scanf("%d",&n)){    for(i=0;i<n;i++)    {     for(j=0;j<=i;j++){      printf("%d",a[i][j]);      if(j==i)      printf("\n");      else      printf(" ");    }     }     printf("\n");    }    return 0;}


0 0
原创粉丝点击