一、Review
11【C语言&趣味算法】个人所得税问题(结构体应用)︰结构体的声明、定义结构体类型的三种方法等
10 (可回看)【C语言&趣味算法】数制转换(常见,二进制、八进制、十进制、十六进制之间任意转换)
09【C语言&趣味算法】再识:折半查找(二分查找)︰基本思想、程序流程图及完整代码、附:顺序查找
08【C语言&趣味算法】再识:冒泡排序(问题分析、算法设计与分析、程序流程图以及完整代码)
07【C语言&趣味算法】最佳存款方案(采用从后往前递推解决)
06【c语言&趣味算法】牛顿迭代法求方程根(可回看)
05【C语言&趣味算法】经典:兔子产子问题(即:Fibonacci数列)
04【C语言&趣味算法】“抓交通肇事犯"问题。算法改进:设置“标识变量”,有效减少循环次数。
03【C语言&趣味算法】(值得品味的一道题)打鱼还是晒网?结构体的简单应用。函数的应用。判断闰年的应用。求指定日期距1990年1月1日的天数。
02【C语言&趣味算法】借书方案问题:小明有5本新书,要借给A、B、C三位小朋友,若每人每次只能借1本,则可以有多少种不同的借法?
01【C语言&趣味算法】百钱百鸡问题(问题简单,非初学者请忽略叭)。请注意算法的设计(程序的框架),程序流程图的绘制,算法的优化。
二、New Problem: The problem of saving money(存钱问题)
二.New Problem: The problem of saving money(存钱问题)
2.1 Description of the problem
2.2Analysis of the problem
2.3 Algorithm design and program flow chart(算法设计及程序流程图)
2.4 Full code and output
//趣味12:存钱问题 #include<stdio.h> #include<math.h> int main() { int x1,x2,x3,x5,x8,y1,y2,y3,y5,y8; /*定义变量*/ double max=0.0,result; /*result变量存放最后结果*/ /*使用for循环穷举所有可能存款方案*/ for(x8=0;x8<=2;x8++) for(x5=0;x5<=(20-8*x8)/5;x5++) for(x3=0;x3<=(20-8*x8-5*x5)/3;x3++) for(x2=0;x2<=(20-8*x8-5*x5-3*x3)/2;x2++) { x1=20-8*x8-5*x5-3*x3-2*x2; /*存款期限限定条件*/ /*判断条件*/ result=2000.0*pow((1+0.0063*12),x1) *pow((1+2*0.0066*12),x2) *pow((1+3*0.0069*12),x3) *pow((1+5*0.0075*12),x5) *pow((1+8*0.0084*12),x8); /*y1,y2,y3,y5,y8用于记录获利最多的存放方式*/ if(result>max) { max=result; /*max变量存放当前的最大值*/ y1=x1; y2=x2; y3=x3; y5=x5; y8=x8; } } /*输出结果*/ printf("获得利息最多的存款方式为:\n"); printf("8年期限的存了%d次\n",y8); printf("5年期限的存了%d次\n",y5); printf("3年期限的存了%d次\n",y3); printf("2年期限的存了%d次\n",y2); printf("1年期限的存了%d次\n",y1); printf("存款人最终的获得的本利合计:%0.2f\n",result); }
The output: