甲、乙、丙三人共有 x x元钱,先由甲分钱给乙、丙两人,所分给的数与各人已有数相同;接着由乙分给甲、丙,分法同前;再由丙分钱给甲、乙,分法亦同前。经上述三次分钱之后,每个人的钱数恰好一样多。 求原先各人的钱数分别是多少?用Java语言
时间: 2024-09-24 21:17:35 浏览: 120
这个问题是一个经典的数学问题,可以通过递归的方式来解决。假设最后每个人的钱都是y元,由于经过了三次分配,每人都分了一次给自己,所以最初每人应该有(y/3)元。我们可以设置三个变量,a、b、c分别表示甲、乙、丙最初的金钱数额,然后根据题目描述建立方程组:
1. a + b + c = x (初始总金额)
2. a = b = c = y/3 (每次分配后每个人都多了自身原有的一倍)
我们需要找到满足这些条件的a、b、c值。在Java中,我们可以编写一个函数来求解这个问题:
```java
public class Main {
public static void main(String[] args) {
double totalAmount = 1000; // 假设总金额为1000元
double equalAmount = totalAmount / 9; // 最后每个人的钱数
System.out.println(findInitialAmounts(equalAmount, totalAmount));
}
public static double[] findInitialAmounts(double finalEach, double total) {
if (finalEach <= 0 || total % 3 != 0) {
throw new IllegalArgumentException("Invalid conditions");
}
double each = finalEach * 3; // 由于每人最后都分给了自己,所以原来应该是现在的一半
double a = each / 3; // 甲的初始金额
double b = a;
double c = a;
return new double[]{a, b, c};
}
}
```
在这个例子中,我们假设最终每个人的钱是1000元的1/9,即111.11元,因为总共要分三次,每次每人增加一倍,最后就变成每人111.11元,所以原来的总金额x=9 * 111.11。
阅读全文