第十一天打卡

1.问题:现在已知某人手上有2000元,要求通过计算选择出一种存钱方案,使得这笔钱存入银行20年后获得的利息最多,假定银行对超出存款期限的那部分时间不付利息。

2.思路:分析出每个期限存的次数范围,并通过穷举法将每个存钱方案算出来。

3.程序流程图:

 

4.代码实现:

#include <stdio.h>
  #include <stdlib.h>
  #include <math.h>
  int main()
  {
  int i8, i5, i3, i2, i1;
  int n8, n5, n3, n2, n1;
  double max = 0;
         int n;
       double capital,total;
     scanf("%d,%lf",&n,&capital);
 for(i8=0;i8<=n/8;i8++)
 for(i5=0;i5<=n/5;i5++)
for(i3=0;i3<=n/3;i3++)
 for(i2=0;i2<=n/2;i2++)
 for(i1=0;i1<=n;i1++){
 if(i1+2*i2+3*i3+5*i5+8*i8==n){
 total=capital*pow(1.0225,i1)*pow(1+2*0.0243,i2)*pow(1+3*0.0270,i3)*pow(1+5*0.0288,i5)*pow(1+8*0.0300,i8);
 if(total>max){
 max=total;
 n1=i1;
 n2=i2;
 n3=i3;
 n5=i5;
 n8=i8;
 }
  }
 }
 printf("8 year: %d\n",n8);
 printf("5 year: %d\n",n5);
 printf("3 year: %d\n",n3);
 printf("2 year: %d\n",n2);
 printf("1 year: %d\n",n1);
 printf("Total: %.2f\n",max);
 return 0;
 }
posted @ 2023-04-26 00:04  £剑影メ随见彡  阅读(16)  评论(0)    收藏  举报