JAVA 国王遗产问题
📝X国是一个小国,国王K有6个儿子
😇在临终前立下遗嘱:
国王有一批牛作为遗产要分给6个儿子,其中大儿子分1/4,二儿子分1/5,三儿子分1/6......直到小儿子分1/9,最后剩下11头牛,分给管家,请计算国王这一批遗产中一共有多少头牛?
✏解决一:穷举法
✒先大致估算出一个范围我这里估算的是5000
for (int i = 1; i<= 5000;i += 2){
//循环体
}
✒首先要满足六个儿子分的牛,即
if (i % 4 == 0 && i % 5 == 0 && i % 6 == 0 && i % 7 == 0 && i % 8 == 0 && i % 9 == 0)//得到一个可能为遗产的数字
✒然后将循环体中的i减去六个儿子一共分的牛,判断是不是等于11(因为最后剩11头牛)
int Sum = i / 4 + i / 5 + i / 6 + i / 7 + i / 8 + i / 9;//分给儿子的牛
if (i - sum == 11) //判断是不是还剩下11头牛
如果以上符合上述条件,即得出国王一共有几头牛,最后打印输出🎉
📑运行源码:
package Project;
public class Universal {
public static void main(String[] args) {
for (int i = 0; i <= 5000; i += 2) {
if (i % 4 == 0 && i % 5 == 0 && i % 6 == 0 && i % 7 == 0 && i % 8 == 0 && i % 9 == 0) {
int Sum = i / 4 + i / 5 + i / 6 + i / 7 + i / 8 + i / 9;
if (i - Sum == 11) {
System.out.println(i);//打印结果
break;//退出循环
}
}
}
}
}
✏解决二:数学法
可以一行解决,所以就不多概述了
📑运行源码:
package Project;
public class Universal {
public static void main(String[] args) {
double Sum = 1 - 1.0/4
- 1.0/5
- 1.0/6
- 1.0/7
- 1.0/8
- 1.0/9;
System.out.print("国王共有 " + Math.rint(11/Sum) + "头牛");
}
}
最后计算结果2520,完美散花~🎉🎉🎉