【发布时间】:2015-03-27 23:07:38
【问题描述】:
问题:http://codeforces.com/problemset/problem/486/A
输入:
1000000000000000
输出:
-1
答案:
500000000000000
检查日志:
wrong answer 1st numbers differ - expected: '500000000000000', found: '-1'
代码:
int main() {
int a, b = 0, c = 0, d, i;
scanf("%d", &a);
for (i = 2 ; i <= a ; i++) {
if (i % 2 == 0) {
c = c + i;
}
if (i % 2 != 0) {
b = b + i;
}
}
d = c - b;
d = d - 1;
printf("%d", d);
return 0;
}
【问题讨论】:
-
int64_t或long long。一个小提示:你能把方程转换成更省时吗? -
不,我的代码不适用于 long long ..你能为我安排代码吗??
-
您可以将第一个和第二个数字 (-1 + 2 = 1) 和第三个与第四个 (-3 + 4 = 1) 组合起来,依此类推。你得到多少1s?现在想想最后,如果最后一个数字是偶数,还剩下什么,如果最后一个数字是奇数,还剩下什么?