东D


私信TA

用户名:1003478061

访问量:4403

签 名:

等  级
排  名 2863
经  验 2049
参赛次数 4
文章发表 8
年  龄 20
在职情况 学生
学  校
专  业

  自我简介:

咸鱼一条

解题思路:

提供三种解题思路

  1. 辗转相除法

  2. 辗转相减法

  3. 递归


参考代码:

  //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 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区