解题思路:使用辗转相除法求最大公约数,编写一个函数计算,然后根据定义求最小公倍数,再编写一个函数计算
注意事项:函数名不能与变量名相同
参考代码:
#include<bits/stdc++.h>
using namespace std;
/*
求m,n的最大公约数(辗转相除法)
1)求 m%n=c
2)若c=0,则除数n为两个数的最大公约数;
若c!=0,则m=n,n=c,再执行1)直到c=0
最小公倍数=两个数的乘积/最大公约数
*/
int gys(int a,int b){
int c;
if(a<b)
swap(a,b);
c=a%b;
if(c==0)
return b;
else
{
while(c){
a=b;
b=c;
c=a%b;}
return b;
}
}
int gbs(int a,int b,int max_gys){
return a*b/max_gys;
}
int main()
{
int a,b;
int max_gys;
cin>>a>>b;
max_gys=gys(a,b);//计算最大公约数并把函数的返回值赋值给max_gys
cout<<max_gys;
cout<<' ';
cout<<gbs(a,b,max_gys);//计算最小公倍数并输出函数的返回值
return 0;
}
0.0分
1 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复