有人問這個問題,在程序設計大賽: -使用模運算符與花車
-1%1000000009爲-1或1000000008
我想知道,這甚至可能? 我在我的系統中試過,每次都得到-1。 此外,我必須找出10^-9%10^9,我用fmod並得到答案1e-009,不應該是1?
我的解釋: - 10^-9/10^9 = 1/10^18 所以,答案= 1
請告訴我,我錯了。
有人問這個問題,在程序設計大賽: -使用模運算符與花車
-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/3
這是0
,然後我們要問:多少,以便獲得1
補充的嗎?
答案是1
這樣1%3=1
。
看着10^-9 % 10^9
讓我們用另一個數字,淨度:
2^-3 % 2^3
首先我們calc下的偏差的整數值:
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
?
yup,-1
。
只需遵循Modulo的規則。
先找到整數偏差。然後問:爲了得到分子,我們需要添加多少。
的情況下分子>分母
7 % 5 = > 7 /5 => 1.4 => .4 go to hell = > you're left with 1.
但通知。
這是1次5
確定,所以從1次5 - 多少需要去7? YES:2
更先進:
3.111 %2 = > 3.111/2 = > 1.5555 => .555 go to hell => you're left with 1.
但是這是2
從2 1次所以1次 - 這多少需要去3.111? yup 1.111
這是否意味着在所有情況下,例如分子是一個浮點數,分母是整數類型並且比浮點數大得多,答案只會是浮點數(最初是分子)? – unixia
@ user3715736即使分子有橙子浮動,分母有整數的蘋果:你首先(!)將結果(!)的迭代器部分設置爲2.111%3 => 2.111/3 => 0.7033 =>。 7033去地獄=>你留下0 =>所以我們需要多少2.111? 2.111' –
'%'不適用於浮點類型。你不能寫'3.111%2' –
至於你的'fmod'問題:[每個程序員應該知道什麼關於浮點運算](http://floating-point-gui.de)。 – usr2564301
@Jongware我正在編寫一個程序,所以我需要清楚地看到程序中發生了什麼。這沒有幫助。任何其他幫助? – unixia
'%'不是浮點運算符 –