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

题目: 某人手中有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;
}


你可能感兴趣的:((百例编程)14.怎样存钱利最大)