#include <iostream>
using namespace std;int main()
{
int n;while(cin>>n){
int num[1000],i,j,s=1;num[0]=1;for(i=1;i<n;++i){
num[s++]=1;for(j=1;j<i;++j)num[s++]=num[s-i]+num[s-i-1];//注意找数字规律num[s++]=1;} s=0;for(i=0;i<n;++i){
for(j=0;j<i;++j)cout<<num[s++]<<" ";cout<<num[s++]<<endl;}//要按格式输出cout<<endl;}
}
(这串代码能ac但在dev上跑会出现错误)
规律:
从第三行开始,收尾为1,中间的数=上一行两个数的和。
如
1
1 1
1 2 1
1 3 3 1
第四行第一个3=第三行首1+2
第四行第二个3=第三行2+尾1
(所求数向后移时求和的数也向后移了)