2019-05-29

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之后的数开始,到倒数第二个数,每个数,都由上一行两个数相加。(这里为了不用数组,在草稿纸上写了很多才找到规律。)


你可能感兴趣的:(2019-05-29)