uni*_*xia 5 c++ floating-point
有人在编程竞赛中提出这个问题: -
-1%1000000009是-1或1000000008
我想知道,这甚至可能吗?我试过我的系统,每次都得-1.另外,我必须找出10 ^ -9%10 ^ 9,我用fmod并得到答案1e-009,不应该是1吗?
我的解释: - 10 ^ -9/10 ^ 9 = 1/10 ^ 18所以,答案= 1.
请告诉我我错在哪里.
预览:(我将mod称为%)
就像在中一样 1%3,我们执行 (int) 1/3which is 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的确。
整数部分是多少?一个零。
从零开始,我们需要添加多少才能达到-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 的 1 倍。
那么从 1 乘以 2 到 3.111 需要多少?是的 1.111