测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A25731. 编程实现:给定一个正整数M(1≤M≤5)和一个只包含数字的字符串(5<字符串长度≤20)。使用M个乘号插入到字符串中,且两个乘号不能相邻,插入后,生成一个乘法算式。找出一种使乘法算式数值最大的插入方式,并将结果输出。(乘号不能放在字符串的首尾位置)如字符串为123456,插入2个乘号。插入方式有:1*2*3456=6912,1*23*456=10488,1*234*56=13104,1*2345…

填空题 较难

题目描述

编程实现:

给定一个正整数M(1≤M≤5)和一个只包含数字的字符串(5<字符串长度≤20)。使用M个乘号插入到字符串中,且两个乘号不能相邻,插入后,生成一个乘法算式。找出一种使乘法算式数值最大的插入方式,并将结果输出。(乘号不能放在字符串的首尾位置)

如字符串为123456,插入2个乘号。插入方式有:

1*2*3456=6912,1*23*456=10488,1*234*56=13104,1*2345*6=14070,12*3*456=16416,12*34*56=22848,12*345*6=24840,123*4*56=27552,123*45*6=33210,1234*5*6=37020,
其中乘法算式数值最大是第十种,为37020。

输入描述:

第一行输入一个正整数M(1≤M≤5),代表乘号个数

第二行输入一个只包含数字的字符串(5<字符串长度≤20),表示要插入M个乘号的字符串

输出描述:

输出一个整数,表示最大的结果

样例输入:

2
123456

样例输出:

37020

参考答案

m=int(input()) s=input() s=s.strip() mays=[] for item1,i1 in enumerate(s): if m>=2: for item2,i2 in enumerate(s[item1+1:]): if m>=3: for item3,i3 in enumerate(s[item2+1:]): if m>=4: for item4,i4 in enumerate(s[item3+1:]): if m>=5: for item5,i5 in enumerate(s[item4+1:]): c=s c=c[:item1+c.count("*")+1]+"*"+c[item1+c.count("*")+1:] c=c[:item2+item1+1+c.count("*")+1]+"*"+c[item2+item1+1+c.count("*")+1:] c=c[:item3+item2+1+item1+1+c.count("*")+1]+"*"+c[item3+item2+1+item1+1+c.count("*")+1:] c=c[:item4+item3+1+item2+1+item1+1+c.count("*")+1]+"*"+c[item4+item3+1+item2+1+item1+1+c.count("*")+1:] c=c[:item5+item4+1+item3+1+item2+1+item1+1+c.count("*")+1]+"*"+c[item5+item4+1+item3+1+item2+1+item1+1+c.count("*")+1:] mays.append(c) if m==4: c=s c=c[:item1+c.count("*")+1]+"*"+c[item1+c.count("*")+1:] c=c[:item2+item1+1+c.count("*")+1]+"*"+c[item2+item1+1+c.count("*")+1:] c=c[:item3+item2+1+item1+1+c.count("*")+1]+"*"+c[item3+item2+1+item1+1+c.count("*")+1:] c=c[:item4+item3+1+item2+1+item1+1+c.count("*")+1]+"*"+c[item4+item3+1+item2+1+item1+1+c.count("*")+1:] mays.append(c) if m==3: c=s c=c[:item1+c.count("*")+1]+"*"+c[item1+c.count("*")+1:] c=c[:item2+item1+1+c.count("*")+1]+"*"+c[item2+item1+1+c.count("*")+1:] c=c[:item3+item2+1+item1+1+c.count("*")+1]+"*"+c[item3+item2+1+item1+1+c.count("*")+1:] mays.append(c) if m==2: c=s c=c[:item1+c.count("*")+1]+"*"+c[item1+c.count("*")+1:] c=c[:item2+item1+1+c.count("*")+1]+"*"+c[item2+item1+1+c.count("*")+1:] mays.append(c) if m==1: c=s c=c[:item1+c.count("*")+1]+"*"+c[item1+c.count("*")+1:] mays.append(c) result=0 for may in mays: if may[-1]=="*": continue calc=eval(may) if calc>result: result=calc print(int(result))

答案解析

评分标准:

7分:能正确输出一组数据;

7分:能正确输出两组数据;

7分:能正确输出三组数据;

7分:能正确输出四组数据;

7分:能正确输出五组数据。

上一题 下一题