求助!第四个点一直过不了。
查看原帖
求助!第四个点一直过不了。
1301165
George0楼主2024/3/11 12:40

第四个点输入是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();
	}
}
2024/3/11 12:40
加载中...