解题思路:
提供三种解题思路
辗转相除法
辗转相减法
递归
参考代码:
//1.辗转相除法
void division(int x, int y)
{
int temp, num;
num = x * y;
if(x < y)
{
temp = x; x = y; y = temp;
}
while(y != 0)
{
temp = x % y;
x = y;
y = temp;
}
printf("%d %d\n", x, num / x);
}
//2.辗转相减法
void subtract(int x, int y)
{
int num;
num = x * y;
while(x != y)
{
if(x > y) x = x - y;
else y = y - x;
}
printf("%d %d\n", x, num / x);
}
//3.递归
int dg(int x, int y)
{
if(x == y) return y;
else if(x > y) return dg(x - y, y);
else return dg(x, y - x);
}
int main()
{
int n1, n2;
scanf("%d%d", &n1, &n2);
division(n1, n2);
subtract(n1, n2);
printf("%d %d", dg(n1, n2), n1 * n2 / dg(n1, n2));
}
0.0分
0 人评分
简单的a+b (C语言代码)浏览:530 |
C语言程序设计教程(第三版)课后习题6.1 (C语言代码)浏览:702 |
C语言程序设计教程(第三版)课后习题9.3 (C语言代码)浏览:2092 |
K-进制数 (C语言描述,蓝桥杯)浏览:925 |
A+B for Input-Output Practice (III) (C语言代码)浏览:569 |
关于float,double变量的几点说明浏览:1810 |
局部变量作函数返回值的问题浏览:981 |
C二级辅导-统计字符 (C语言代码)浏览:648 |
数列排序 (C语言代码)浏览:616 |
C语言程序设计教程(第三版)课后习题8.2 (C语言代码)浏览:1038 |