hdu 2032之前还是好好的杨晖三角,后来数据就不对了。

#include
int main(void)
{
long long n, i, j, k, x, y, s1, s2;

while (scanf("%lld", &n) != EOF)
{
    printf("1\n");
    for (i=2; i<=n; i++)//第一行直接打印,从第二行开始打印数字
    {
        printf("1 ");
        for (x=3, j=i-1, k=1, s1=1, s2=1; x<=i; x++, j--, k++)//从第三行开始打印数据,且跳过前后的两个1
        {
            s1 *= j;
            s2 *= k;
            printf("%lld ", s1/s2);
        }
        printf("1\n");
    }
}


return 0;

}

x:20, j:4, k:18, s1:8515157028618240000, s2:6402373705728000, s1/s2:1330
x:21, j:3, k:19, s1:7098727012145168384, s2:121645100408832000, s1/s2:58
x:22, j:2, k:20, s1:-4249290049419214848, s2:2432902008176640000, s1/s2:-1

你的这个算法在x到22的时候就long long溢出了。所以异常啦~~~

http://blog.csdn.net/hellokatewj/article/details/8577338

哪里不对了,讲清楚点