c - C-Codeforces 中的未定义行为
问题描述
这是我编写的代码,我必须先将所有负奇数和正整数相加,然后将它们相加。例如:如果 n=5:
evn = 2 + 4 = 6
odd = -1 -3 - 5 = -9
result= 6 + (-9) = -3(ans)
此代码在我的 Codeblocks Ide 中成功运行,但是当它在 Codeforces 编译器中显示垃圾值时。我已尽力弄清楚,谁能告诉我如何解决这个问题?另外请告诉我如何找到UB?
#include<stdio.h>
int main()
{
long long int n;
scanf("%lld",&n);
long long int evn,odd;
if(n%2==0) //Im currently facing problem in this case.I got the expected output in codeblocksIDE
{
evn=n/2;
long long int sum_pos = (4+(evn-1)*2)*evn/2;
long long int sum_neg = (-2+(evn-1)*-2)*evn/2;
long long int ans = sum_pos+sum_neg;
printf("%lld",ans);
}
else
{
evn = n/2;
odd = evn+1;
long long int sum_pos = (4+(evn-1)*2)*evn/2;
long long int sum_neg = (-2+(odd-1)*-2)*odd/2;
long long int ans = sum_pos+sum_neg;
printf("%lld",ans);
}
}
Test: #16, time: 15 ms., memory: 4 KB, exit code: 0, checker exit code: 1, verdict: WRONG_ANSWER
Input
208170109961052
Output
-9223267951799795282
Answer
104085054980526
Checker Log
wrong answer 1st numbers differ - expected: '104085054980526', found: '-9223267951799795282'
解决方案
推荐阅读
- arrays - 为什么这个程序不遵循矩阵规则?
- data-science - 如何在测试集上估算缺失值?
- swift - 一起使用 queryEqual 和 queryEnding?
- python - 来自 URL 的 Python Socket GET 请求格式不正确?
- python - 如何将非线性 cmap 围绕 RdYlGn 居中?
- apache-spark - K8s 上的 Spark:执行程序节点永远挂起
- java - Quarkus Qute 无法解析模板
- javascript - 在 Sequelize-CLI 中仅恢复两个迁移之一?
- java - 在两个活动之间划分片段是否更好,比如在 MainActivity 和另一个活动之间:(性能)?
- c++ - 当我将一个指针分配给另一个指针时会发生什么?