所以我正在学习C++,在我正在阅读的一本书中,有一个用于查找GCF(最大公因数)的例子。功能如下:Simple Modulo Operations
int gcf(int a, int b) {
if(b == 0) {
return a;
}
else {
return gcf(b, a%b);
}
}
我不明白的是,如果我把15和5例如,然后
a = 15
b = 5
b is not 0 so then the else statement executes
(5, 15%5 = 0) so since b is now 0 it returns, a, which is 5.
这是有道理的,但如果我扭转号码,为什么/我如何得到相同的答案?
a = 5
b = 15
b is not 0 so then the else statement executes
(15, 5%15) but 5%15 is .3 or 1/3, but in C++, 5%15 returns 5.
我不明白的地方5从何而来,如果有的话,因为它是一个整数,我想这也许返回0,但它不返回15,所以这是不可能的。
从什么时候开始'5%15 = 1/3'?你是否模糊分裂? – Mysticial 2012-03-02 05:33:56
其5/15的剩余部分将为0,剩余部分为5 – L7ColWinters 2012-03-02 05:34:25
我认为我把分工与模数混淆了。 – Matt 2012-03-02 05:42:49