2.4.7 编程(www.cppentry.com)实例:信用卡余额
假定有一张信用卡,卡上已产生应还金额50美元,银行按2%月利率收费。假定一直不还款,多少个月之后,这张卡的应还金额会超过100美元?解决这个问题的一个办法是查看每月账单,统计在应还金额达到或超过100美元之前,总共会经历多少个月。但更好的办法是用程序计算每月应还金额,而不必等着银行寄账单。通过这种方式,无需漫长的等待(也不会影响自己的信用评级),就能迅速得到答案。
一个月后,卡的应还金额是50美元加50美元的2%,也就是51美元。两个月后,卡的应还金额是51美元加51美元的2%,也就是52.02美元。三个月之后,卡的应还金额是52.02美元加52.02美元的2%,依此类推。总之,每月应还金额都会增加2%。该程序将应还金额保存到名为balance的变量中对其进行跟踪。每月对balance变量值的修改可以像下面这样进行:
- balancebalance = balance + 0.02 * balance;
重复这个行动,直到balance的值达到(或超过)100美元,并对重复次数进行计数,就能知道在多少月后,应还金额将达到100美元。为此,需要用另一个变量对balance的修改次数进行计数。假定新变量名称是count。while循环中最终的主体将包含以下语句:- balancebalance = balance + 0.02 * balance;
- count++;
为了使该循环正确执行,必须在该循环执行之前将恰当的值赋给变量balance和count。本例在声明变量的同时初始化。完整的程序请参见图2.15。
|
| 图2.15 信用卡程序 |
示范对话
- This program tells you how long it takes
- to accumulate a debt of $100, starting with
- an initial balance of $50 owed.
- The interest rate is 2% per month.
- After 36 months,
- your balance due will be $101.99