刷题记录11
自定义函数处理最大公约数与最小公倍数
题目描述
写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果两个整数由键盘输入。
输入
两个数
输出
最大公约数 最小公倍数
#include<iostream>
using namespace std;
int qmax(int a,int b);//声明函数
int qmin(int a,int b);
int main()
{
int c,d;
cin>>c>>d;//输入两个整数
qmax(c,d);//参数传递
qmin(c,d);
cout<<qmax(c,d)<<" "<<qmin(c,d);//输出结果
return 0;
}
int qmax(int a,int b)//函数定义
{
int n=1,max,t;
if(a<b)//选出最小的那个数
t=a,
a=b,
b=t;
if(a%b==0)
max=b;
else
{
while(n<b)//最大公约数
{
if(a%n==0&&b%n==0)
max=n;
n++;
}
}
return max;
}
int qmin(int a,int b)//最小公倍数,这里利用了函数嵌套调用
{
int min;
min=a*b/qmax(a,b);
return min;
}
解题思路:首先定义两个函数用来求最大公约数和最小公倍数,由于求最小公倍数要用到前面一个函数,所以先写出求求最大公约数的函数,其中利用遍历的方法将最大公约数求出。