2032链接:http://acm.hdu.edu.cn/showproblem.php?pid=2032
#include
using namespace std;
int main()
{
int s=1,n,i,j;
while(cin>>n)
{
cout<<"1"<
for(i=2;i<=n;s=1,i++)
{
cout<<"1 ";
for(j=1;j<=i-2;j++)
{
cout<<(s=(i-j)*s/j)<<" ";
}
cout<<"1"<
}
cout<
}
return 0;
}
思路:看到这一题可以用一个二维数组来解决,将每行的数据存入进去,最后再输出来,不过我用了另外一个方法,只用一个变量s,不过每次用完之后都将s重置为1,第一个for循环,从第一行开始,第0个赋值1,从赋值了1之后的数开始,到倒数第二个数,每个数,都由上一行两个数相加。(这里为了不用数组,在草稿纸上写了很多才找到规律。)