数字用乘号拆分后乘积的最大值问题

这个问题是我家居仔参加蓝桥杯考试的时候碰到的,在网上搜索了答案 ,主要 有两种:动态规划以及在不同位置插入乘号,说实话动态规划我没怎么明白(还是实力不行啊)。两三个月后,在和娃复盘,突然会了一种新的方法,实验了几次,bingo!也没有见到类似的答案~现在题目以及三种解法都贴出来,欢迎指正。

题目:蓝桥杯2022年3月13日小学组python选拔赛第五题

给定正整数1<=m<=5,和一个只包含数字的字符串,长度大于5小于等于20,将m个乘号插入到字符串中且不相邻,求插入后生成的乘法算式最大的方法,不能放在首尾,不含0。

动态规划法:

n,k = map(int,input().split())

s = list(input())   #此时的列表数据都是str类型

dp = [[0 for i in range(k+1)]for j in range(n+1)]    #动规的数组
dp[1][0] = int(s[0])

for i in ra

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值