http://acm.hdu.edu.cn/showproblem.php?pid=2032
用数组打表来做,首尾是1,其余的是上一行的这个数和前一个数的和
#include<stdio.h> int main() { int yh[50][50],i,j,n; yh[0][0]=yh[1][0]=yh[1][1]=1; for(i=2;i<=30;i++) for(j=0;j<i+1;j++) { if(j==0||j==i) yh[i][j]=1; else yh[i][j]=yh[i-1][j-1]+yh[i-1][j]; } while(scanf("%d",&n)!=EOF) { for(i=0;i<n;i++) { for(j=0;j<i+1;j++) if(j==0) printf("%d",yh[i][j]); else printf(" %d",yh[i][j]); printf("\n"); } printf("\n"); } return 0; }