Java写一年365天,以第一天的能力值为基数,记为1。当好好学习时能力值相比前一天提高千分之一,当没有学习时,能力值比前一天下降千分之一。编程计算每天努力和每天放任一年下来能力值相差多少?如果提高和下降百分之
时间: 2024-11-11 13:34:21 浏览: 11
Java基础学习第二天
在Java中,我们可以创建一个简单的类来模拟这个情况。假设有一个名为`Ability`的类,包含属性`currentValue`表示当前的能力值以及两个方法`increase()`和`decrease()`分别表示学习提升和休息降低能力值。我们可以编写一个函数来计算一年内每天的情况并最终计算出总差额。
```java
public class Ability {
private double currentValue = 1; // 初始能力值
public void increase() {
currentValue *= 1.001; // 学习提升千分之一
}
public void decrease() {
currentValue *= 0.999; // 没有学习下降千分之一
}
public static void calculateDifference(Ability base) {
Ability learned = new Ability(); // 假设每天都在学习
Ability neglected = new Ability(); // 假设每天都不学习
double totalIncrease = 0;
double totalDecrease = 0;
for (int i = 0; i < 365; i++) {
learned.increase();
neglected.decrease();
totalIncrease += learned.currentValue;
totalDecrease += neglected.currentValue;
}
double dailyDifference = learned.currentValue - neglected.currentValue;
double annualDifference = totalIncrease - totalDecrease;
double improvementPercentage = ((annualDifference / base.currentValue) * 100) - 100; // 提升百分比减去初始值
System.out.println("每天努力与放任的差距: " + dailyDifference);
System.out.println("一年后的总能力值差异: " + annualDifference + "%");
System.out.println("努力提升的平均每日百分比: " + improvementPercentage + "%");
}
}
```
现在你可以通过调用`calculateDifference(new Ability())`来得到结果。注意,这里假设每天都是一天的学习和一天的休息交替,实际应用中可根据需求调整。
阅读全文