100C之14:如何获得最大投资利益
问题
假设银行整存整取不同期限的月利息为
年份 | 月利率 |
---|---|
1 | 0.63% |
2 | 0.66% |
3 | 0.69% |
5 | 0.75% |
8 | 0.84% |
利息 = 本金X月息利率X12X存款年限. 假定银行对超过存款期限的那部分时间不服利息. 现在某人手中有2000元,计算一种方案,使得钱存入银行20年后得到最多利息。
分析
假设该人一年期的存款存$n1$次,二年期的存款存$n2$次,三年期的存款存$n3$次,五年期的存款存$n5$次,八年期的存款存$n8$次,则最后的总收入为
\begin{eqnarray} y&=&2000(1 + 0.0062\times 12)^{n_{1}}(1 + 0.0066\times 12\times 2)^{n_{2}}(1 + 0.0069\times 12\times 3)^{n_{3}} \nonumber \\ & &\times(1 + 0.0075\times 12\times 5)^{n_{5}}(1 + 0.0084\times 12\times 8)^{n_{8}} \end{eqnarray}其中$n1$,$n2$,$n3$,$n5$,$n8$满足约束如下约束关系
\begin{equation} 0\le n_{1} \le 20 \end{equation} \begin{equation} 0\le n_{2} \le (20 - n_{1})/2 \end{equation} \begin{equation} 0\le n_{3} \le (20 -n_{1}-2n_{2})/3 \end{equation} \begin{equation} 0\le n_{5} \le (20-n_{1}-2n_{2}-3n_{3})/5 \end{equation} \begin{equation} 0\le n_{8} \le (20-n_{1}-2n_{2}-3n_{3}-5n_{5})/8 \end{equation}综上分析穷举计算出最大值即可
解决方案
1: /** 2: * @file 014getmaximumprofit.c 3: * @author Chaolong Zhang <emacsun@163.com> 4: * @date Tue May 14 18:22:20 2013 5: * 6: * @brief 假设银行整存整取不同期限的月利息为 7: * 1年 0.63% 8: * 2年 0.66% 9: * 3年 0.69% 10: * 5年 0.75% 11: * 8年 0.84% 12: * 利息 = 本金X月息利率X12X存款年限 13: * 现在某人手中有2000元,计算一种方案,使得钱存入银行20年后得到最多利息。 14: * 假定银行对超过存款期限的那部分时间不服利息 15: */ 16: 17: #include <stdio.h> 18: #include <math.h> 19: 20: 21: int main(int argc, char *argv[]) 22: { 23: int n1,n2,n3,n5,n8; 24: int m1,m2,m3,m5,m8; 25: float total=0; 26: float maximum=0; 27: for ( n1 = 0; n1 <= 20; ++n1) 28: { 29: for ( n2 = 0; n2 <= ( 20-n1 )/2; ++n2) 30: { 31: for ( n3 = 0; n3 <= ( 20-n1-2*n2 )/3 ; ++n3) 32: { 33: for ( n5 = 0; n5 <= ( 20-n1-2*n2-3*n3 )/5; ++n5) 34: { 35: for ( n8 = 0; n8 <= ( 20-n1-2*n2-3*n3-5*n5 )/8; ++n8) 36: { 37: total = 2000*pow( 1+0.0063*12 , n1)*pow( 1+0.0066*12*2 , n2)*pow( 1+0.0069*12*3 , n3) 38: *pow( 1+0.0075*12*5 , n5)*pow( 1+0.0084*12*8 , n8); 39: if (total>maximum) 40: { 41: maximum=total; 42: m1=n1; 43: m2=n2; 44: m3=m3; 45: m5=n5; 46: m8=n8; 47: } 48: } 49: } 50: } 51: } 52: } 53: printf ("the total money is %f, with 1-year %d times\n with 2-year %d times\n with 3-year %d times\n 54: with 5-year %d times\n with 8-year %d times\n", maximum, m1,m2,m3,m5,m8); 55: return 0; 56: }
作者:emacsun
出处:http://www.cnblogs.com/chaolong/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。