第四个点输入是1000000000 2147483647 123,输出是214.7。而我的程序输出是214.8
import java.util.Scanner;
public class Loans {
static int m;
static int w;
static long w0;
public static double principal(double p) {
double v = 1;
double sum = 0;
for (int i = 0; i < m; i++) {
v *= (1 + p);
sum += (w / v);
}
return sum;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
w0 = sc.nextLong();
w = sc.nextInt();
m = sc.nextInt();
double l = 0;
double r = 4;
double mid = 0;
while (r - l >= 0.0001) {
mid = (l + r) / 2;
if (Math.abs(mid - w0) < 0.0001) {
break;
}
if (principal(mid) > w0) {
l = mid;
} else if (principal(mid) < w0) {
r = mid;
}
}
mid = mid * 100;
System.out.printf("%.1f", mid);
sc.close();
}
}