路之予


私信TA

用户名:0x83cfdd3c

访问量:17508

签 名:

与世界过招。

等  级
排  名 710
经  验 3769
参赛次数 0
文章发表 36
年  龄 0
在职情况 学生
学  校 Bilibili University
专  业 CS

  自我简介:

解题思路:


辗转相除法求最大公约数:

1.如果B=0,那么A就是最大公约数

2.B!=0,计算A/B的余数,让A==B,而B等于余数


演示:

A=12 B=18 remainder=12

A=18 B=12 remainder=6

A=12 B=6   remainder=0

A=6   B=0   remainder=0

A=6   B=0   over


注意事项:


A*B=GCD*LCM

GCD:最大公约数

LCM:最小公倍数

参考代码:

#include<iostream>
using namespace std;
int main() {
	int a,b,r,p;
	cin>>a>>b;
	p=a*b;
	while(b!=0) {
		r=a%b;
		a=b;
		b=r;
	}
	int GCD=a;
	int LCM=p/GCD;
	cout<<GCD<<endl<<LCM;
	return 0;
}


 

0.0分

3 人评分

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

编程语言转换万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区