int c;
long long sum=0;
sum+=c*(c-1)/2;
Run Code Online (Sandbox Code Playgroud)
当c = 100000时,为什么总和无法得到正确的答案?我应该写sum + =(long long)(c*(c-1)/ 2);
int这是32位我假设 - 100000平方(10E9)超过int导致溢出的最大范围.以下内容可行 - 将第一个实例转换c为long long将意味着表达式的其余部分将是"long long compatible".
sum+=((long long)c*(c-1)/2);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
399 次 |
| 最近记录: |