核桃的数量
问题描述
小张是软件项目经理,他带领 3 个开发组。工期紧,今天都在加班呢。为鼓舞士气,小张打
算给每个组发一袋核桃(据传言能补脑)。他的要求是:
1. 各组的核桃数量必须相同
2. 各组内必须能平分核桃(当然是不能打碎的)
3. 尽量提供满足 1,2 条件的最小数量(节约闹革命嘛)
输入格式
输入包含三个正整数 a, b, c,表示每个组正在加班的人数,用空格分开(a,b,c<30)
输出格式
输出一个正整数,表示每袋核桃的数量。
样例输入 1
2 4 5
样例输出 1
20
思路与解题方法
看到这道题,我第一个想法是。。。题目真雷人。。。
还好,然后仔细看了看,发现这个找最下公倍数就解决问题了
代码如下
C++
#include <iostream>
#include <string>
using namespace std;
void main(){
int a;
int b;
int c;
cin>>a;
cin>>b;
cin>>c;
int max;
max = a;
if(a<b&&a>c){
max = b;
}else if(a<b&&a<c){
if(b>c){
max = b;
}else{
max = c;
}
}
//找出最大值
int result;
int min;
for(int i = 1;i<30;i++){
result = max * i;
if(result%a==0 && result%b==0 && result%c==0){
min = result;
break ;
}
}
//找到最小公倍数
cout<<min;
return ;
}
java
public class nutNnmber {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int a = in.nextInt();
int b = in.nextInt();
int c = in.nextInt();
int max;
max = a;
if(a<b&&a>c){
max = b;
}else if(a<b&&a<c){
if(b>c){
max = b;
}else{
max = c;
}
}
//找出最大值
int result;
int min=0;
for(int i = 1;i<30;i++){
result = max * i;
if(result%a==0 && result%b==0 && result%c==0){
min = result;
break ;
}
}
//找到最小公倍数
System.out.print(min);
}
}