pokerjest 2017-10-28 01:50 采纳率: 66.7%
浏览 875
已采纳

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;

}

  • 写回答

3条回答 默认 最新

  • crazyskady 2017-11-02 04:48
    关注

    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溢出了。所以异常啦~~~

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料