求助一个很离谱的事情
  • 板块学术版
  • 楼主osfly
  • 当前回复6
  • 已保存回复6
  • 发布时间2023/1/27 21:06
  • 上次更新2023/10/24 02:54:30
查看原帖
求助一个很离谱的事情
339299
osfly楼主2023/1/27 21:06

以下是一道私人题目的AC代码

#include<cstdio>
#define int long long
int q;
signed main()
{
    scanf("%lld",&q);
    while(q--)
    {
        int n;
        scanf("%lld",&n);
        int a=2*((2+n)*n/4-1),b=a-2;
        if(!a||!b) printf("0\n");
        else printf("%lld\n",a*b/2);
    }
    return 0;
}

在这里面中,我们把 int a=2*((2+n)*n/4-1),b=a-2; 替换成 int a=(2+n)*n/2-2,b=a-2; 就会全WA

起初我以为是 /4 会下取整的缘故,但是当我替换成 int a=2*(2+n)*n/4-2,b=a-2; 照样会全WA

long long 的问题?

int a=1ll*2*(2+n)*n/4-1ll*2,b=a-2;。嗯,还是全WA

这么玄学的吗

2023/1/27 21:06
加载中...