现在价格是200万,假设房子价格以每年百分之K增长,并且该打工人未来年薪不变,且不吃不喝,不用交税,每年所得N万全都积攒起来,问第几年能够买下这套房子
时间: 2024-06-13 20:08:28 浏览: 156
这是一道数学问题,可以使用复利公式来解决。假设第x年后能够买下房子,则有:
N * x = 200 * (1 + K)^x
将式子变形,得到:
(1 + K)^x = N * x / 200
对于这个式子,我们可以使用二分法来求解。具体来说,我们可以先猜一个年份t,然后计算出(1 + K)^t和N * t / 200的值,如果两者相等或者非常接近,那么t就是我们要求的年份;否则,我们就根据大小关系缩小t的范围,再次进行猜测,直到找到答案为止。
下面是Java代码实现:
```
public static int getYear(double k, double n) {
double left = 0, right = 100;
while (left + 1e-6 < right) {
double mid = (left + right) / 2;
double val = Math.pow(1 + k, mid);
if (val < n * mid / 200) {
left = mid;
} else {
right = mid;
}
}
return (int) Math.ceil(right);
}
```
其中,k表示房价每年的增长率,n表示每年所得收入,函数返回的是需要的年数。注意,由于double类型的精度问题,我们需要在比较两个数是否相等时加上一个很小的数(例如1e-6)来避免误差。
阅读全文