數學題 不用乘除法來求餘數

B=GQ+R
Q=商, R=餘數
求B/G的餘數

若不用乘除法來求餘數

B-G = C 檢查是否 C>= G
若C<G, 則R = C
若C>=G, 則再做一次 C-G=D 檢查是否 D>= G
若D<G, 則 R= D
若D>=G, 則再做一次 D-G=E 檢查是否 E>= G
.....
(重複好多次相同動作直到 減出來的結果 < G, 最後求出餘數)

是否有一次搞定的做法 ? (不用檢查 C D E ..., 只做一次)
或者是電路?

2009-03-25 11:53 發佈
求B/G的餘數
用連減法.

void main()
{
long B,G,Q,R;
long t1,t2;
t1=B;
t2=0;
while(t1>G)
{
t1=t1-G;
t2+=1;
}
R=t1;
Q=t2;
}

如果 G是 2^N, 可直接求出: R= B AND (G-1)
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?