bool odd (unsigned int x) {
return (x%2);
}
int Russian_peasant (unsigned int m, unsigned int n) {
int sum = 0;
if (odd(m))
sum = n;
while (m > 1) {
m = m/2;
n = 2*n;
if (odd(m))
sum += n;
}
return sum;
}
int main() {
cout << Russian_peasant(4, 5) << " ";
cout << Russian_peasant(3, 8) << " ";
cout << Russian_peasant(213, 100) << " ";
}
这是C中循环和控制的基本代码 . 任何人都可以解释为什么输出是 20 24 21300 请详细说明吗?谢谢 .