原题:http://acm.hdu.edu.cn/showproblem.php?pid=2032
思路:
常规杨辉三角,定义一个二维数组可以免去繁琐的计算。空间并不算大。注意最后要空一行即可。
源代码:
#include <iostream> using namespace std; int main() { int n,i,j; int a[31][31]; for(i=0;i<30;i++) { a[i][0]=1; a[i][i]=1; } for(i=2;i<30;i++) { for(j=1;j<i;j++) { a[i][j]=a[i-1][j-1]+a[i-1][j]; } } while(cin>>n) { for(i=0;i<n;i++) { for(j=0;j<i;j++) { cout<<a[i][j]<<' '; } cout<<a[i][j]<<endl; } cout<<endl; } return 0; }