C语言高手请进 麻烦用C语言写一段程序.题号\x058\x05乘积最大总体需求\x05编写一个实现将一个的数字串,分成K+1个部分,使得这K+1个部分的乘积能够为最大.功能需求\x05设有一个长度为N的数字串

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/05 16:01:39

C语言高手请进 麻烦用C语言写一段程序.题号\x058\x05乘积最大总体需求\x05编写一个实现将一个的数字串,分成K+1个部分,使得这K+1个部分的乘积能够为最大.功能需求\x05设有一个长度为N的数字串
C语言高手请进 麻烦用C语言写一段程序.
题号\x058\x05乘积最大
总体需求\x05编写一个实现将一个的数字串,分成K+1个部分,使得这K+1个部分的乘积能够为最大.
功能需求\x05设有一个长度为N的数字串,要求使用K个乘号将它分成K+1个部分,找出一种分法,使得这K+1个部分的乘积能够为最大.如:有一个数字串:312,当N=3时,K=1时会有以下两种分法:
\x05\x051)3×12 = 36
\x05\x052)31×2 = 62
\x05此时,符合题意的结果是31×2 = 62
用户界面\x05输入:
1)程序正常运行后,提示用户输入一行共有2个自然数N,K(6≤N≤40,1≤K≤6).
2)第二行是一个长度为N的数字串.
输出:
相对于输入,应输出所求得的最大乘积(一个自然数).
提示与参考\x05输入样例
4 2
1231
输出样例
62

C语言高手请进 麻烦用C语言写一段程序.题号\x058\x05乘积最大总体需求\x05编写一个实现将一个的数字串,分成K+1个部分,使得这K+1个部分的乘积能够为最大.功能需求\x05设有一个长度为N的数字串
#include
// 动态规划f(i, j)=max{f(i, k),f(k+1, j)}
long dp(char *num, int n, int k)
{
int max = 0;
int t1, t2;
if (n