[蓝桥杯][2013年第四届真题]核桃的数量

本文介绍了一种求三个数最小公倍数的编程方法,通过实例讲解了如何利用Java实现这一数学问题的解决。文章详细阐述了算法的思路,包括找到三个数的最大值,并以此为基础寻找最小公倍数的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目描述

小张是软件项目经理,他带领3个开发组。工期紧,今天都在加班呢。为鼓舞士气,小张打算给每个组发一袋核桃(据传言能补脑)。他的要求是:

  1. 各组的核桃数量必须相同
  2. 各组内必须能平分核桃(当然是不能打碎的)
  3. 尽量提供满足1,2条件的最小数量(节约闹革命嘛)

输入:

输入包含三个正整数a,  b,  c,表示每个组正在加班的人数,用空格分开(a,b,c< 30)  

输出:

输出一个正整数,表示每袋核桃的数量。

样例输入:

2 4 5

样例输出:

20
题目分析:

此题说通俗一点,就是求三个数的最小公倍数。

解题思路:

既然是求三个数的最小公倍数,那么目标值一定都能被这三个数整除,因此,只需要先找出这三个数的最大值,用最大的 k(k=1,2,⋯ )k(k = 1,2, \cdots )k(k=1,2,) 倍一个一个试,当能够被这三个数都整除的时候,结果就出来了。

1. max(a,b,c)
2. while(true){
   temp = k*max; # k从1开始
   if(temp%a==0 && temp%b==0 && temp%c==0){
   		print(temp);
   		break;
   		}
   	k++;
   }
JAVA 代码
import java.util.Scanner;
/**
 * 小张是软件项目经理,他带领3个开发组。工期紧,今天都在加班呢。为鼓舞士气,小张打算给每个组发一袋核桃(据传言能补脑)。他的要求是:
 * 1.  各组的核桃数量必须相同
 * 2.  各组内必须能平分核桃(当然是不能打碎的)
 * 3.  尽量提供满足1,2条件的最小数量(节约闹革命嘛)
 *
 * 说白了,就是求三个数的最小公倍数
 */
public class Main{
    public static void main(String[] args) {
        input();
    }
    public static void input() {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()){
            int a = scanner.nextInt();
            int b = scanner.nextInt();
            int c = scanner.nextInt();
            function(a,b,c);
        }
        scanner.close();
    }
    public static void function(int a, int b, int c) {
        int max = maxNum(a,b,c);
        int i = 1;
        int temp = 0;
        while (true){
            temp = max*i;
            if (temp%a==0 && temp%b==0 && temp%c==0){
                System.out.println(temp);
                break;
            }
            i++;
        }
    }
    public static int maxNum(int a, int b, int c) {
        // 假设一个数最大
        int max = a;
        if (b>max)
            max = b;
        if (c>max)
            max = c;
        return max;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值