核桃的数量

核桃的数量

问题描述
小张是软件项目经理,他带领 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);
    }
}

核桃的数量

上一篇:TCP/UDP协议


下一篇:docker镜像管理基础