fork download
  1. //Micah Krosby CS1A Ch. 3, P. 146, # 17
  2. /*******************************************************************************
  3.  * CALCULATE INTEREST PAID ON LOAN
  4.  * _____________________________________________________________________________
  5.  * This program calculates the amount of interest paid on a loan with a monthly
  6.  * interest rate and a number of monthly payments.
  7.  *
  8.  * FORMULAE-
  9.  * Payment = loan * (rate * (1 + rate)^times paid/((1 + rate)^times paid - 1))
  10.  * Total paid = payment * times paid
  11.  * Interest paid = total paid - loan
  12.  * _____________________________________________________________________________
  13.  *
  14.  * INPUTS-
  15.  * loan : Loan given to customer
  16.  * numPay : Number of payments made by customer
  17.  * rate : Interest rate of loan
  18.  * OUTPUTS-
  19.  * payment : Monthly payment size
  20.  * totalPaid : Total payment size
  21.  * interestPaid : Total interest earned on loan
  22. *******************************************************************************/
  23.  
  24. #include <iostream>
  25. #include <cmath>
  26. #include <iomanip>
  27. using namespace std;
  28.  
  29. //monthly payment formula
  30. float monthlyPayment(float rate, unsigned short int numPay, float loan) {
  31. return loan * rate * pow((1.0+rate), numPay) / (pow((1.0+rate), numPay)-1);
  32. }
  33. int main() {
  34. float loan; //INPUT- Loan given
  35. unsigned short int numPay; //INPUT- Number of payments
  36. float rate; //INPUT- Interest rate monthly
  37. float payment; //OUTPUT- Monthly payments
  38. float totalPaid; //OUTPUT- Total paid
  39. float interestPaid; //OUTPUT- Total interest paid on loan
  40.  
  41. //initialize input variables
  42. cout << "Loan size?" << endl;
  43. cin >> loan;
  44. cout << "Monthly interest rate?" << endl;
  45. cin >> rate;
  46. cout << "Number of payments?" << endl;
  47. cin >> numPay;
  48. cout << endl;
  49.  
  50. //initialize output variables
  51. payment = monthlyPayment(rate, numPay, loan);
  52. totalPaid = payment * numPay;
  53. interestPaid = totalPaid - loan;
  54.  
  55. //output
  56. cout << setw(30) << left << "Loan Amount:" << setw(10) << "$"
  57. << setw(10) << right << fixed << setprecision(2) << loan << endl;
  58. cout << setw(30) << left << "Monthly Interest Rate:" << setw(19)
  59. << right << rate * 100 << "%" << endl;
  60. cout << setw(30) << left << "Number of Payments:" << setw(20)
  61. << right << numPay << endl;
  62. cout << setw(30) << left << "Monthly Payments:" << setw(10) << "$"
  63. << setw(10) << right << fixed << setprecision(2) << payment << endl;
  64. cout << setw(30) << left << "Amount Paid:" << setw(10) << "$"
  65. << setw(10) << right << totalPaid << endl;
  66. cout << setw(30) << left << "Interest Paid:" << setw(10) << "$"
  67. << setw(10) <<right << interestPaid << endl;
  68. return 0;
  69. }
  70.  
Success #stdin #stdout 0.01s 5280KB
stdin
10000
0.01
36
stdout
Loan size?
Monthly interest rate?
Number of payments?

Loan Amount:                  $           10000.00
Monthly Interest Rate:                       1.00%
Number of Payments:                             36
Monthly Payments:             $             332.14
Amount Paid:                  $           11957.15
Interest Paid:                $            1957.15