我的算法计算下面给出的算术运算,为它完美的小值,但对于大量的,如218194447它返回一个随机值,我曾试图用很长很长整型,双,但没有工作,因为模函数我有使用只能用int型可以使用,任何人都可以解释如何解决,或可提供可能是有用的一个环节模函数只适用于整数数据类型吗?
#include<stdio.h>
#include<math.h>
int main()
{
long long i,j;
int t,n;
scanf("%d\n",&t);
while(t--)
{
scanf("%d",&n);
long long k;
i = (n*n);
k = (1000000007);
j = (i % k);
printf("%d\n",j);
}
return 0;
}
请缩进/格式化您的代码,使其可读。谢谢。 – 2014-09-01 19:12:19
可能重复: - http://stackoverflow.com/questions/2177781/how-to-calculate-modulus-of-large-numbers – 2014-09-01 19:13:34
无关:只是用'1000000007'似乎比重新计算'战俘相当清晰的(10,9 )+ 7',我们只能希望一个合理智能的编译器进行优化。 – WhozCraig 2014-09-01 19:19:59