14.怎樣存錢利
假設(shè)銀行整存整取存款不同期限的月息利率分別為:
0.63% 期限=1年
0.66% 期限=2年
0.69% 期限=3年
0.75% 期限=5年
0.84% 期限=8年
利息=本金*月息利率*12*存款年限。
現(xiàn)在某人手中有2000元錢,請(qǐng)通過(guò)計(jì)算選擇一種存錢方案,使得錢存入銀行20年后得到的利息最多(假定銀行對(duì)超過(guò)存款期限的那一部分時(shí)間不付利息)。
*問(wèn)題分析與算法
為了得到最多的利息,存入銀行的錢應(yīng)在到期時(shí)馬上取出來(lái),然后立刻將原來(lái)的本金和利息加起來(lái)再作為新的本金存入銀行,這樣不斷地滾動(dòng)直到滿20年為止,由于存款的利率不同,所以不同的存款方法(年限)存20年得到的利息是不一樣的。
分析題意,設(shè)2000元存20年,其中1年存i1次,2年存i2次,3年存i3次,5年存i5次,8年存i8次,則到期時(shí)存款人應(yīng)得到的本利合計(jì)為:
2000*(1+rate1)i1*(1+rate2)i2*(1+rate3)i3*(1+rate5)i5*(1+rate8)i8
其中rateN為對(duì)應(yīng)存款年限的利率。根據(jù)題意還可得到以下限制條件:
0<=i8<=2
0<=i5<=(20-8*i8)/5
0<=i3<=(20-8*i8-5*i5)/3
0<=i2<=(20-8*i8-5*i5-3*i3)/2
0<=i1=20-8*i8-5*i5-3*i3-2*i2
可以用窮舉法窮舉所有的i8、i5、i3、i2和i1的組合,代入求本利的公式計(jì)算出值,就是存款方案。
*程序與程序注釋
#include
#include
void main()
{
int i8,i5,i3,i2,i1,n8,n5,n3,n2,n1;
float max=0,term;
for(i8=0;i8<3;i8++) /*窮舉所有可能的存款方式*/
for(i5=0;i5<=(20-8*i8)/5;i5++)
for(i3=0;i3<=(20-8*i8-5*i5)/3;i3++)
for(i2=0;i2<=(20-8*i8-5*i5-3*i3)/2;i2++)
{
i1=20-8*i8-5*i5-3*i3-2*i2;
term=2000.0*pow((double)(1+0.0063*12),(double)i1)
*pow((double)(1+2*0.0063*12),(double)i2)
*pow((double)(1+3*0.0069*12),(double)i3)
*pow((double)(1+5*0.0075*12),(double)i5)
*pow((double)(1+8*0.0084*12),(double)i8);
/*計(jì)算到期時(shí)的本利合計(jì)*/
if(term>max)
{
max=term;n1=i1;n2=i2;n3=i3;n5=i5;n8=i8;
}
}
printf("For maxinum profit,he should so save his money in a bank:\n");
printf(" made fixed deposit for 8 year: %d times\n",n8);
printf(" made fixed deposit for 5 year: %d times\n",n5);
printf(" made fixed deposit for 3 year: %d times\n",n3);
printf(" made fixed deposit for 2 year: %d times\n",n2);
printf(" made fixed deposit for 1 year: %d times\n",n1);
printf(" Toal: %.2f\n",max);
/*輸出存款方式*/
}
*運(yùn)行結(jié)果
For maxinum profit,he should so save his money in a bank:
made fixed deposit for 8 year: 0times
made fixed deposit for 5 year: 4times
made fixed deposit for 3 year: 0times
made fixed deposit for 2 year: 0times
made fixed deposit for 1 year: 0times
Total:8841.01
可見(jiàn)的存款方案為連續(xù)四次存5年期。
*思考題
某單位對(duì)職工出售住房,每套為2萬(wàn)元。買房付款的方法是:
一次交清,優(yōu)惠20%
從第一年開(kāi)始,每年年初分期付款:
5年交清,優(yōu)惠50%;
10年交清,優(yōu)惠10%;
20年交清,沒(méi)有優(yōu)惠。
現(xiàn)在有人手中正好有2萬(wàn)元,若假定在今后20年中物價(jià)和銀行利率均保持不變,問(wèn)他應(yīng)當(dāng)選擇哪種付款方式可以使應(yīng)付的錢最少?
假設(shè)銀行整存整取存款不同期限的月息利率分別為:
0.63% 期限=1年
0.66% 期限=2年
0.69% 期限=3年
0.75% 期限=5年
0.84% 期限=8年
利息=本金*月息利率*12*存款年限。
現(xiàn)在某人手中有2000元錢,請(qǐng)通過(guò)計(jì)算選擇一種存錢方案,使得錢存入銀行20年后得到的利息最多(假定銀行對(duì)超過(guò)存款期限的那一部分時(shí)間不付利息)。
*問(wèn)題分析與算法
為了得到最多的利息,存入銀行的錢應(yīng)在到期時(shí)馬上取出來(lái),然后立刻將原來(lái)的本金和利息加起來(lái)再作為新的本金存入銀行,這樣不斷地滾動(dòng)直到滿20年為止,由于存款的利率不同,所以不同的存款方法(年限)存20年得到的利息是不一樣的。
分析題意,設(shè)2000元存20年,其中1年存i1次,2年存i2次,3年存i3次,5年存i5次,8年存i8次,則到期時(shí)存款人應(yīng)得到的本利合計(jì)為:
2000*(1+rate1)i1*(1+rate2)i2*(1+rate3)i3*(1+rate5)i5*(1+rate8)i8
其中rateN為對(duì)應(yīng)存款年限的利率。根據(jù)題意還可得到以下限制條件:
0<=i8<=2
0<=i5<=(20-8*i8)/5
0<=i3<=(20-8*i8-5*i5)/3
0<=i2<=(20-8*i8-5*i5-3*i3)/2
0<=i1=20-8*i8-5*i5-3*i3-2*i2
可以用窮舉法窮舉所有的i8、i5、i3、i2和i1的組合,代入求本利的公式計(jì)算出值,就是存款方案。
*程序與程序注釋
#include
#include
void main()
{
int i8,i5,i3,i2,i1,n8,n5,n3,n2,n1;
float max=0,term;
for(i8=0;i8<3;i8++) /*窮舉所有可能的存款方式*/
for(i5=0;i5<=(20-8*i8)/5;i5++)
for(i3=0;i3<=(20-8*i8-5*i5)/3;i3++)
for(i2=0;i2<=(20-8*i8-5*i5-3*i3)/2;i2++)
{
i1=20-8*i8-5*i5-3*i3-2*i2;
term=2000.0*pow((double)(1+0.0063*12),(double)i1)
*pow((double)(1+2*0.0063*12),(double)i2)
*pow((double)(1+3*0.0069*12),(double)i3)
*pow((double)(1+5*0.0075*12),(double)i5)
*pow((double)(1+8*0.0084*12),(double)i8);
/*計(jì)算到期時(shí)的本利合計(jì)*/
if(term>max)
{
max=term;n1=i1;n2=i2;n3=i3;n5=i5;n8=i8;
}
}
printf("For maxinum profit,he should so save his money in a bank:\n");
printf(" made fixed deposit for 8 year: %d times\n",n8);
printf(" made fixed deposit for 5 year: %d times\n",n5);
printf(" made fixed deposit for 3 year: %d times\n",n3);
printf(" made fixed deposit for 2 year: %d times\n",n2);
printf(" made fixed deposit for 1 year: %d times\n",n1);
printf(" Toal: %.2f\n",max);
/*輸出存款方式*/
}
*運(yùn)行結(jié)果
For maxinum profit,he should so save his money in a bank:
made fixed deposit for 8 year: 0times
made fixed deposit for 5 year: 4times
made fixed deposit for 3 year: 0times
made fixed deposit for 2 year: 0times
made fixed deposit for 1 year: 0times
Total:8841.01
可見(jiàn)的存款方案為連續(xù)四次存5年期。
*思考題
某單位對(duì)職工出售住房,每套為2萬(wàn)元。買房付款的方法是:
一次交清,優(yōu)惠20%
從第一年開(kāi)始,每年年初分期付款:
5年交清,優(yōu)惠50%;
10年交清,優(yōu)惠10%;
20年交清,沒(méi)有優(yōu)惠。
現(xiàn)在有人手中正好有2萬(wàn)元,若假定在今后20年中物價(jià)和銀行利率均保持不變,問(wèn)他應(yīng)當(dāng)選擇哪種付款方式可以使應(yīng)付的錢最少?