主页 > 其他  > 

蓝桥与力扣刷题(蓝桥核桃的数量)

蓝桥与力扣刷题(蓝桥核桃的数量)

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

各组的核桃数量必须相同

各组内必须能平分核桃(当然是不能打碎的)

尽量提供满足 1,2 条件的最小数量(节约闹革命嘛)

输入描述

输入一行 a,b,ca,b,c,都是正整数,表示每个组正在加班的人数,用空格分开(a,b,c<30)(a,b,c<30)。

输出描述

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

输入输出样例 示例

输入

2 4 5

输出

20

解题思路+代码:

代码:

import java.util.Scanner; // 1:无需package // 2: 类名必须Main, 不可修改 public class Main { public static void main(String[] args) { /** 思路: 1.读取3个组加班的人数 2.创建核桃分发方法(核桃数 % 组人数 == 0) */ Scanner scan = new Scanner(System.in); int[] person = new int[3]; for(int i = 0;i< person.length;i++){ person[i] = scan.nextInt();//读取3个组加班的人数存放进数组 } //更新结果 int result = Integer.MAX_VALUE; for(int i = 1;i <= 10000; i++){ boolean flag = true; //判断核桃是否能够正好分发给小组成员 for(int j = 0; j < person.length;j++){ if(i % person[j] != 0){ flag = false; break; } } //当flag为true时,将i(最小公约数)赋值给result if(flag){ result = i; break; } } System.out.println(result); scan.close(); } }

 总结:解答这道题需要求核桃的数量,很容易想到模运算,用核桃的数量分别%三组人数==0即可,但是这样的数存在很多个,但题目要求的尽量提供满足 1,2 条件的最小数量(节约闹革命嘛)正暗示了需要求最小公约数,因此求解最小公约数即是正确求解。那怎么在代码中体现最小公约数?我个人的解法是使用数组来存储三组人数,用for循环+if条件判断找到最小的遍历值,再赋值给结果并输出。这里也可以不用数组换成暴力匹配,直接获取三组人数,用for循环+if条件判断(3个组分别判断)后得到最小遍历值也是相应的结果。

标签:

蓝桥与力扣刷题(蓝桥核桃的数量)由讯客互联其他栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“蓝桥与力扣刷题(蓝桥核桃的数量)