(百例编程)14.怎样存钱利最大

本文介绍了一个算法案例,通过计算选择最优存款方案以实现20年后收益最大化。算法使用多重循环遍历所有可能的存款组合,并根据不同的存款期限及对应的利率进行复利计算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目: 某人手中有2000元钱,通过计算选择一种存钱方案,使得钱存入银行20年后得到的利息最多(假定银行对超过存款期限的那一部分时间不付利息)。为了得到最多的利息,存入银行的钱应在到期时马上取出来,然后立刻将原来的本金和利息加起来再作为新的本金存入银行 。

假设银行整存整取存款不同期限的月息利率分别为:
0.63% 期限=1年
0.66% 期限=2年
0.69% 期限=3年
0.75% 期限=5年
0.84% 期限=8年
利息=本金*月息利率*12*存款年限。

#include <iostream>
#include <cmath>
using namespace std;
int main(void)
{
 int a1,a2,a3,a4,a5,n1,n2,n3,n4,n5;
 float maxm=0,tem;
 for (a5=0;a5<3;a5++)
  for(a4=0;a4<(20-a5*8)/5;a4++)
   for(a3=0;a3<(20-a5*8-a4*5)/3;a3++)
    for(a2=0;a2<(20-a5*8-a4*5-a3*3)/2;a2++)
  {
   a1=20-a5*8-a4*5-a3*3-a2*2;
    tem=2000*pow((double)(1+0.0084*12),(double)(a5*8))*pow((double)(1+0.0075*12),(double)(a4*5))*pow((double)(1+0.0069*12),(double)(a3*3))*pow((double)(1+0.0066*12),(double)(a2*2))*pow((double)(1+0.0063*12),(double)(a1));
   if (tem>maxm)
   {
    maxm=tem;
    n1=a1;
    n2=a2;
    n3=a3;
    n4=a4;
    n5=a5;
   }
  }
  cout<<"存钱最大20年后为:"<<maxm<<endl;
  cout<<"存钱方案如下:"<<endl;
  cout<<"存1年限的次数为:"<<n1<<endl;
  cout<<"存2年限的次数为:"<<n2<<endl;
  cout<<"存3年限的次数为:"<<n3<<endl;
  cout<<"存5年限的次数为:"<<n4<<endl;
  cout<<"存8年限的次数为:"<<n5<<endl;
 return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值