解题思路:
提供三种解题思路
辗转相除法
辗转相减法
递归
参考代码:
//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 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复