历届试题 核桃的数量
时间限制:1.0s 内存限制:256.0MB
问题描述
小张是软件项目经理,他带领3个开发组。工期紧,今天都在加班呢。为鼓舞士气,小张打算给每个组发一袋核桃(据传言能补脑)。他的要求是:
1. 各组的核桃数量必须相同
2. 各组内必须能平分核桃(当然是不能打碎的)
3. 尽量提供满足1,2条件的最小数量(节约闹革命嘛)
输入格式
输入包含三个正整数a, b, c,表示每个组正在加班的人数,用空格分开(a,b,c<30)
输出格式
输出一个正整数,表示每袋核桃的数量。
样例输入1
2 4 5
样例输出1
20
样例输入2
3 1 1
样例输出2
3
思路:
1.这是一道比较简单的求三个数最大公倍数的题
2,构造一个求两个数最大公倍数的函数,然后调用两次就可以了
(先求任意俩个数的最大公倍数,再求这个公倍数和剩下的那个数的公倍数)
代码:
#include<iostream>
using namespace std;
int f(int a,int b)
{
int w=a,p=b,t;
if(a==1) return b;
if(b==1) return a;
else if(a>=b)
{
while(a%b!=0)
{
a=a+w;
}
return a;
}
else if(a<b)
{
t=a;
a=b;
b=t;
while(a%b!=0)
{
a=a+p;
}
return a;
}
}
int main(void)
{
int a,b,c,m,q;
cin>>a>>b>>c;
m=f(a,b);
q=f(m,c);
cout<<q ;
}