为什么n需要unsigned long long???
  • 板块P2181 对角线
  • 楼主Versifine
  • 当前回复9
  • 已保存回复9
  • 发布时间2023/9/10 19:24
  • 上次更新2023/11/2 21:34:28
查看原帖
为什么n需要unsigned long long???
409898
Versifine楼主2023/9/10 19:24

如题 为什么n需要unsigned long long???

蒟蒻求助

按理来说n不会大于100000的吧。

为什么要用unsigned long long,而且用了和不用的代码跑的结果不一样TVT

82分的代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n,lp,rp;unsigned long long sum(0);//lp:线左边的点数,rp右边的。
    cin>>n;
    rp=n-3;
    for(lp=1;lp<=n-3;lp++,rp--)
    {
        sum+=lp*rp;
    }//计算每个点射出的线的点数
    sum=sum*n/4;//每个交点由四个点均分
    cout<<sum<<endl;
    return 0;
    }                                                

100分的代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    unsigned long long n,lp,rp;unsigned long long sum(0);//lp:线左边的点数,rp右边的。
    cin>>n;
    rp=n-3;
    for(lp=1;lp<=n-3;lp++,rp--)
    {
        sum+=lp*rp;
    }//计算每个点射出的线的点数
    sum=sum*n/4;//每个交点由四个点均分
    cout<<sum<<endl;
    return 0;
    }                                                

二者唯一的区别只有n lp rp的类型。

而且输入98765时二者输出不同

代码一:346012695838301915

代码二:3964374251598225115(与测试点一致)

蒟蒻真想不明白,大佬救一下TvT

2023/9/10 19:24
加载中...