gpt4 book ai didi

c - 我如何使用 16 位整数类型?

转载 作者:行者123 更新时间:2023-11-30 21:42:15 25 4
gpt4 key购买 nike

问题: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;
}

最佳答案

int 可以容纳的最大值是 2,147,483,647。将变量更改为 unsigned long long,它最多可以容纳超过 18,446,744,000,000,000,000。 (您需要使用 %llu 读入/输出 unsigned long long 变量)

此外,始终验证输入,这会暗示问题。

if(scanf("%d", &a) < 1) { //if we read less than one
printf("FAILED TO READ INPUT");
return 1;
}

最后,您将从 2 迭代到 1000000000000000,无论循环内有什么内容,这都将花费很长时间。您需要使用更快的算法才能在一秒的截止日期内完成。

关于c - 我如何使用 16 位整数类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28202598/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com