Java:甲乙丙三人放鞭炮,每人有20个鞭炮,甲每两秒放一个,乙每三秒放一个,丙每五秒放一下,同时开始
,问最多终能听到多少声鞭炮响
这个就是解决思路,要用简单的思路,多用方法,希望采纳吧!
public class Firecrackers {
public static void main(String[] args) {
int a = 2, b = 3, c = 5; // 甲每两秒放一个,乙每三秒放一个,丙每五秒放一个
int n = 20; // 每人有20个鞭炮
int lcm = lcm(lcm(a, b), c); // 最小公倍数
int count = lcm / a * n + lcm / b * n + lcm / c * n - 2 * n; // 最多能听到的鞭炮声数
System.out.println("最多能听到的鞭炮声数为:" + count);
}
// 求最小公倍数
public static int lcm(int a, int b) {
return a * b / gcd(a, b);
}
// 求最大公约数
public static int gcd(int a, int b) {
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
}
int[] a = new int[96];
int count = 0;
int j = 0;
int y = 0;
int b = 0;
while (j < 40 || y < 60 || b < 100) {
if (j == y && y == b) {
a[count] = j + 1;
j += 2;
y += 3;
b += 5;
} else if (j <= y && j <= b) {
a[count] = j + 1;
j += 2;
} else if (y <= j && y <= b) {
a[count] = y + 1;
y += 3;
} else if (b <= j && b <= y) {
a[count] = b + 1;
b += 5;
}
count++;
}
System.out.println(count);