MOOC清华《程序设计基础》第6章第3题:最大乘积问题(递归法)
来源:互联网 发布:wikipedia数据下载 编辑:程序博客网 时间:2024/06/05 18:41
题目描述
在数字串“3215125”中插入3个乘号,使总的乘积最大,不可以在头和尾放乘号,也不可在任两个相邻数间放多于一个乘号。
例如第一种插入乘号的方案:32*15*12*5 = 28800
第二种插入乘号的方案:3*215*12*5 = 38700
请输出最大的乘积。
无
输出格式输出最大的乘积
样例输入样例输出28800
#include <iostream>#include <cstring>using namespace std;const int S = 3215125;int d[7][7];int P(int l, int r, int k){if(k == 0)return d[l][r];int x, answer = 0;for(int q = l; q <= r - k; q++){x = d[l][q] * P(q + 1, r, k - 1);if(x > answer)answer = x;}return answer;}int main(){memset(d, 0, sizeof(d)); //数组d置零int sl, i, j;sl = 1000000;d[0][6] = S;for(i = 1; i <= 6; i++){d[i][6] = d[i - 1][6] % sl;sl = sl / 10;} for(j = 5; j >= 0; j--)for(i = 0; i <= j; i++){d[i][j] = d[i][j + 1] / 10;}cout << P(0, 6, 3) << endl;return 0;}
以上代码转载自清华大学出版社《程序设计基础》第三版第251——252页的代码。
阅读全文
0 0
- MOOC清华《程序设计基础》第6章第3题:最大乘积问题(递归法)
- MOOC清华《程序设计基础》第6章第3题:最大乘积问题(动态规划)
- MOOC清华《程序设计基础》第6章第1题:n级台阶问题(递归法)
- MOOC清华《程序设计基础》第6章第2题:求f(a,b)问题(递归法)
- MOOC清华《程序设计基础》第6章第1题:n级台阶问题(递推法)
- MOOC清华《程序设计基础》第5章第3题:用递归算法求最大公约数
- MOOC清华《程序设计基础》第6章:橱窗插花问题(枚举法)
- MOOC清华《程序设计基础》第5章:求n的阶乘(用递归法做)
- MOOC清华《程序设计基础》第5章第4题:用递归算法实现选择排序
- MOOC清华《程序设计基础》第5章第5题:用递归算法实现数组求和
- MOOC清华《程序设计基础》第6章第2题:求f(a,b)问题(动态规划)
- MOOC清华《程序设计基础》第4章第3题:不相同的个数(用筛法做)
- MOOC清华《程序设计基础》第6章:分鱼问题(不用数组递推)
- MOOC清华《程序设计基础》第6章:橱窗插花问题(递推法)
- MOOC清华《程序设计基础》第6章:橱窗插花问题(动态规划,输出方法一)
- MOOC清华《程序设计基础》第6章:橱窗插花问题(动态规划,输出方法二)
- MOOC清华《程序设计基础》第6章:最长公共子序列问题(动态规划)
- MOOC清华《程序设计基础》第5章:青蛙过河问题
- 自定义Dialog如何去除阴影
- 实训--day16
- Linux监控Tomcat服务定时任务脚本
- HDU5961传递(思维)
- 1的个数
- MOOC清华《程序设计基础》第6章第3题:最大乘积问题(递归法)
- tensorflow实战 猫狗大战(三)制作tfrecords数据集并显示与训练
- bzoj4540 [Hnoi2016]序列 (莫队+ST表+单调栈)
- Day 10
- Ubuntu安装jdk
- 数据库调优教程——优化sql语句
- hdu 2012 素数判定
- HDOJ 5920 Ugly Problem 【模拟】
- Python3教程Web开发实战梳理-day9(编写API)