解题思路:优先比较输入的两个数的大小,从而可以比较方便地开始进行循环,大大减少了两个数的比较相关代码行数。
注意事项:两个for循环第一次找到最大公约数和最小公倍数之后要有break退出循环。
参考代码:
#include<stdio.h> int main() { int x, y, max, min; scanf("%d%d", &x, &y); min = x < y ? x : y; max = x > y ? x : y; for (int i = min; i > 0; i--) { if ((x % i == 0) && (y % i == 0)) { printf("%d ", i); break; } } for (int j = max; j < x * y + 1; j++) { if ((j % x == 0) && (j % y == 0)) { printf("%d", j); break; } } return 0; }
0.0分
1 人评分