编写一个程序,计算所需的最低固定月付款,以便在12个月内偿还信用卡余额。按固定的每月付款,我们指的是每个月不变的单个数字,而是每月支付的固定金额。
以下变量包含如下所述的值:
余额 - 信用卡上的未结余额
annualInterestRate - 年度利率小数
假设根据月末的余额(在该月的付款之后)每月复利。每月付款必须是10美元的倍数,并且所有月份都相同。请注意,使用此付款方案可能会使余额变为负数,这是可以的。所需数学的摘要如下:
每月利率=(年利率)/ 12.0
每月未付余额=(以前的余额) - (每月最低付款额)
每月更新余额=(每月未付余额)+(每月利率x每月未付余额)
=============================================== ==
测试案例1:
输入您的余额:3329
输入您的年利率:0.2
最低付款:310美元
测试案例2:
输入您的余额:4773
输入您的年利率:0.2
最低付款:440美元
测试案例3:
输入您的余额:3926
输入您的年利率:0.2
最低付款:360美元
从每月10美元的付款开始,计算余额是否会以一年的方式支付(确保考虑到每个月产生的利息 - 这意味着10 * 12韩元的工作量)。如果每月10美元的付款不足以在一年内偿还债务,每月支付10美元,并重复。
这就是我所拥有的,当我输入余额和利率时,我不能让程序等于测试案例中的最低付款额。我还必须使用嵌套循环。
import java.util.Scanner;
public class MinPayment {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter your balance: ");
double balance = input.nextDouble();
System.out.print("Enter your Annual Interest Rate: ");
double rate = input.nextDouble();
double i = 1;
rate = rate / 12.0;
double payment = 0;
while (i <= 12) {
i++;
balance = balance + (rate * balance);
while (balance >= 0) {
payment += 10;
balance = balance - payment;
}
}
System.out.printf("Lowest Payment: $%.0f", payment);
}
}
答案 0 :(得分:0)
double monthlyRate = annualRate / 12.0;
double monthlyUnpaidBalance;
double prevBalance=balance;
double payment=10;
boolean minPaymentReached=false;
while(true)
{
prevBalance=balance;
for(int i=0;i<12;i++)
{
monthlyUnpaidBalance=prevBalance-payment;
if(monthlyUnpaidBalance<=0)
{
minPaymentReached=true;
break;
}
prevBalance=monthlyUnpaidBalance+(monthlyRate*monthlyUnpaidBalance);
}
if(minPaymentReached)
{
break;
}
payment=payment+10;
}
通过设置等于余额的临时变量,我们保留初始值,并且能够设置&#39; prevBalance&#39;在while(true)循环开始时恢复平衡
答案 1 :(得分:0)
我认为错误在payment
变量中,增加了10,然后再从余额中减去。
int i = 1; // Make it an int. Name it 'month'.
rate /= 12.0;
double payment = 0; // totalPayment
final double SINGLE_PAYMENT = 10;
while (i <= 12) {
i++;
balance += rate * balance;
if (balance >= SINGLE_PAYMENT) { // Not while, this month only, not 0
payment += SINGLE_PAYMENT;
balance -= SINGLE_PAYMENT;
}
}
费率逻辑供您考虑。