3883 - 4.21 财务应用程序:比较不同利率下的贷款
时间限制 : 1 秒
内存限制 : 128 MB
编写程序,输入贷款总额和以年为单位的贷款期限,然后输入两个整数a和b(a<b),分别代表利率从a到b的过程中,每次递增1/8的过程中,每月的支付额和总偿还额(其计算方法参见4.22)。
题目输入
输入4个数,分别代表贷款总额和以年为单位的贷款期限,利率a和利率b,且(a<b)
题目输出
输出利率从a到b的过程中,每次递增1/8的过程中,每月的支付额和总偿还额(其计算方法参见4.22)。
表头内容之间空一个Tab位,内容数字之间空二个Tab位,所有数字采用截位方式输出。
输入/输出样例
输入格式
10000 5 5 8
输出格式
Interest Rate Monthly Payment Total Payment 5.0% 188.71 11322.74 5.125% 189.28 11357.13 5.25% 189.85 11391.59 5.375% 190.43 11426.11 5.5% 191.01 11460.69 5.625% 191.58 11495.34 5.75% 192.16 11530.06 5.875% 192.74 11564.83 6.0% 193.32 11599.68 6.125% 193.9 11634.58 6.25% 194.49 11669.55 6.375% 195.07 11704.59 6.5% 195.66 11739.68 6.625% 196.24 11774.85 6.75% 196.83 11810.07 6.875% 197.42 11845.36 7.0% 198.01 11880.71 7.125% 198.6 11916.13 7.25% 199.19 11951.61 7.375% 199.78 11987.16 7.5% 200.37 12022.76 7.625% 200.97 12058.44 7.75% 201.56 12094.17 7.875% 202.16 12129.97 8.0% 202.76 12165.83
Java解答
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner n = new Scanner(System.in); double amount = n.nextDouble(); int y = n.nextInt(); double yra = n.nextDouble(); double yrb = n.nextDouble(); System.out.println("Interest Rate" + "\t" + "Monthly Payment" + "\t" + "Total Payment"); for (double i = yra; i <= yrb; i += 1.0 / 8) { double MP = (amount * i / 1200) / (1 - 1 / Math.pow(1 + i / 1200, y * 12)); double MP1 = (int) (MP * 100) / 100.0; double TP = MP * 12 * y; double TP1 = (int) (TP * 100) / 100.0; System.out.println(i + "%\t\t" + MP1 + "\t\t" + TP1); } } }