c语言,假设银行整存整取存款不同期限的月息利率分别为0.63%1年,0.66%2

2025-04-13 03:51:18
推荐回答(1个)
回答(1):

#include
#define max(a,b) (((a)>(b))?(a):(b))
double save[30];int i;
double put_in(double rate,double money,int year)
{
return (double)( ( rate * 0.01 * money * 12.0 * (double) (year) ) + money );
}
int main()
{
save[0]=2000;
for(i=0;i<30;i++)
{
if(i>=1)save[i]=max(put_in(0.63,save[i-1],1),save[i]);
if(i>=2)save[i]=max(put_in(0.66,save[i-2],2),save[i]);
if(i>=3)save[i]=max(put_in(0.69,save[i-3],3),save[i]);
if(i>=5)save[i]=max(put_in(0.75,save[i-5],5),save[i]);
if(i>=8)save[i]=max(put_in(0.84,save[i-8],8),save[i]);
}
printf("%lf",save[20]-save[0]);
}

输出的是20年所得的最多利息

具体过程请DP+memorize