【发布时间】:2014-03-09 17:18:28
【问题描述】:
在 C 中,是否可以在不导致整数溢出的情况下执行以下操作? 我的答案需要是我稍后在程序中使用的整数。代码打印 -337。 正确答案应该是 2014 年。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main() {
int i;
i = (10000 * 735625 + 14780)/3652425;
printf("%d",i);
return 0;
}
【问题讨论】:
-
尝试改用
long long。 -
如果你已经知道结果,为什么还要使用这样一个奇怪的公式?
-
只需将
10000更改为10000LL即可。这会将计算更改为使用具有更高精度的long long。结果将(在这种情况下)仍然适合常规int。 -
谢谢约阿希姆。你在现场。
-
谢谢约阿希姆。你很准。在回答您的问题 deviantfan 时,公式中的一个数字:735625 是我程序中的计算变量 g。在这里写出我的整个程序没有任何意义。你只需要一个变量的实例。
标签: c