假面骑士kiva渡老婆:一个关于pascal的问题

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/29 16:10:01
一个关于pascal的问题:设i是一个n位十进制数,如果将i划分为k段,则可得到k个整数。这k个整数的乘积为i的一个k乘积。试设计一个算法,求出i的最大k乘积?
对于给出的i和k,求出i 的最大k 乘积。

经典的动态规化题目,各类文章上都都有(乘法问题)

转移方程:F(i,j)表示前i个数分为j段的最大值
则 F(i,j)=max{F(k,j-1)} (j-1<=k<=i-1)
时间复杂度O(N3); 空间复杂度O(N2); 可用滚动数组优化到O(N);
建议用高精度做,显然没有这么大的数据类形

你要给出N与K的范围
范围小的时候可以用枚举
枚举所有可能的情况记录下K乘积最大的
范围大的时候用高级算法:动态规划
好像要用到3维数据结构
动态规划复杂 不好在这里讲
如果你有测试数据发到我得邮箱:Leoea@163.com
我帮你做动态规划算法。。
不过源程序发到这里之后你要用来学习
不要投机取巧!

没看懂你的意思,说清楚点哈