#include <stdio.h>
#include <stdlib.h>
int f(int a, int b) {
int a1 = a, b1 = b;
while (a1 != b1)
if (a1 < b1) a1 += a;
else b1 += b;
return a1;
}
int main() {
printf("%d\n", f(12, 18));
return 0;
}
嗨,我不明白为什么结果是 36,有人可以解释一下吗?
最佳答案
让我们逐步完成:
f(12, 18) -> a = 12, b = 18
int a1 = a, b1 = b; -> a1 = 12, b1 = 18
while (a1 != b1) -> not equal -> do the loop
if (a1 < b1) a1 += a; -> a1 = 24
while (a1 != b1) -> not equal -> do the loop
if (a1 < b1) ... else b1 += b; -> b1 = 36
while (a1 != b1) -> not equal -> do the loop
if (a1 < b1) a1 += a; -> a1 = 36
while (a1 != b1) -> equal -> end the loop
return a1 -> return 36
关于c - 为什么输出是 36 而不是 24?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58751568/