C 判斷兩個整數乘積幾進製

2021-08-29 14:09:52 字數 541 閱讀 4636

對於一般的選擇題,我們可以

先將兩個數的個位相乘,

用乘積對每個選項取餘;

看哪個的餘數與給出乘積的個位相等,

如果多個選項都與之相等,那麼就需要再借助一位

例如: 假設在n進製下,下面的等式成立,567*456=150216,n的值是()

a 9 b 10 c 12 d18

因為是n進製數,所以兩個數可以寫成

(5n^ 2+6n+7)(4n^ 2+5n+6)

=20n^ 4+49n^ 3+88n^ 2+71n+42=n^ 5 +5n^ 4+2n^ 2+n+6 (1)

兩邊對n取餘

42%n=6%n

因為乘積是150216 所以最小也是七進製,大於6, 6對其取余為6

所以42%n==6;

用這個判斷不出哪個是正確答案

因此需要再借助一位

兩邊除以n,再同時對n取餘

(71+42/n)%n=(1+6/n)%n =1 因為6/n=0

(71+42/n)%n=1 (3)

72%n=1;所以選 d

求兩個正整數的乘積

給你兩個正整數 aa 和 bb,1 a,b 10 1 a,b 102000 求 aa 與 bb 的乘積。包括一行,兩個正整數aa 和 bb,1 a,b 10 1 a,b 102000 一行,乙個正整數表示乘積。輸入 1複製 3 7 輸出 1複製 21 解題思路 1.通過歸納得出乘法對應的位置兩乘數和...

根據兩數乘積判斷所用進製

有這樣乙個題 在某系統中15x4 112成立,則系統採用 進製?選項有 5 6 7 8 像簡單的兩數相乘我們可以大致推斷出答案。10進製下個位相乘即5x4 20而題目中個位為2,我們拿選項檢驗20對誰取余能得到2。很顯然答案就是6了。20 2 2。但是像這種題 假設在n進製下,下面等式成立 567 ...

兩個超大整數相加 c

昨天面試有個題,時間太緊,來不及寫了,回家除錯一下 函式原型 bool add const char a,const char b,char dest 思路 模擬人工加法的過程,先從末尾開始加。如果存在進製,則標記 include using namespace std bool add const...