问题描述
假设银行整存整取存款不同期限的月息利率为:
0.63% 期限为1年
0.66% 期限为2年
0.69% 期限为3年
0.75% 期限为5年
84% 期限为8年
现在已知某人手上有2000元,要求通过计算选择出一种存钱方案,使得这笔钱存入银行20年后获得的利息最多,假定银行对超出存款期限的那部分时间不付利息。
问题分析
假设在这20年中,1年期限的存了x1次,2年期限的存了x2次,3年期限的存了x3 次,5年期限的存了x5次,8年期限的存了x8次,则到期时存款人所得的本利合计为(公式①):

由题意可知,显然8年期限的存款次数最多为两次,因此可得到下面对存款期限的限定条件:

算法设计
根据公式①以及对存款期限的限定条件,可以使用for循环来穷举出所有可能的存款金额,从中找出最大的存款金额就是该问题的解。因为限定条件已经确定了,因此for循环的循环次数也都确定了。
下面是完整的代码:
#include
#include
int main()
{
int x1, x2, x3, x5, x8;
<
本文介绍了一个C语言实现的问题,通过计算找出20年内2000元存款在不同期限下的最优存钱方案,以获得最高利息。代码通过for循环穷举所有可能的存款组合,并应用利率公式计算总利息,最后输出获利最多的存款方式和本利合计。
最低0.47元/天 解锁文章
1790

被折叠的 条评论
为什么被折叠?



