有人在编程竞赛中提出这个问题: -
-1%1000000009是-1或1000000008
我想知道,这有可能吗? 我试过我的系统,每次都得-1。 另外,我必须找出10 ^ -9%10 ^ 9,我使用fmod并得到答案1e-009,不应该是1?
我的解释: - 10 ^ -9 / 10 ^ 9 = 1/10 ^ 18 所以,回答= 1。
请告诉我错在哪里。
答案 0 :(得分:3)
预览:(我会将mod
称为%
)
与1%3
一样,我们(int) 1/3
0
,然后我们会问:要添加多少才能获得1
?
答案是1。
所以1%3=1
。
查看10^-9 % 10^9
2^-3 % 2^3
首先我们计算偏差的整数值:
2^-3 / 2^3 = 1/(2^3 * 2^3) = 1/64
你可以看到它的数量很少
所以int部分为0。
所以 - 要添加多少才能获得2^-3
?那是对的:2^-3
关于您的确切问题:
确实我的解释: - 10 ^ -9 / 10 ^ 9 = 1/10 ^ 18所以,答案= 1.
1/10^18
。
整数部分是什么? a 零。
从零开始,我们需要添加多少才能获得-1
?
是,-1
。
只需遵循Modulo的规则。
首先找到整数偏差。然后问:为了得到分子,我们需要添加多少。
对于分子>分母
的情况 7 % 5 = > 7 /5 => 1.4 => .4 go to hell = > you're left with 1.
但请注意。
这是1次5。
好的,从1次5开始 - 到7岁需要多少钱?是的:2。
更高级:
3.111 %2 = > 3.111/2 = > 1.5555 => .555 go to hell => you're left with 1.
但那是2次的2次。
所以从2的1倍 - 到3.111需要多少钱?是的1.111