设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
查看: 4897|回复: 2
打印 上一主题 下一主题

【每周一坑】求乘积最大

[复制链接]

1

主题

0

好友

39

积分

新手上路

Rank: 1

楼主
发表于 2017-8-31 16:33:26 |显示全部楼层
isTrue = True
def separateNum(number):
    listt = []
    for i in range(1, len(number)):
        intA = int(number[:i])
        intB = int(number[i:])
        listt.append(intB * intA)
    print max(listt)


while (isTrue):
    input = raw_input("请输入一个大于等于10数字:")
    if input.isdigit():
        if input.__len__() <= 1:
            print "您输入的数字小于10,请重新输入"
        else:
            isTrue = False
            separateNum(input)
    else:
        print "请输入一个纯数字"
回复

使用道具 举报

1

主题

0

好友

39

积分

新手上路

Rank: 1

沙发
发表于 2017-8-31 16:34:56 |显示全部楼层
wolfog 发表于 2017-8-31 16:33
isTrue = True
def separateNum(number):
    listt = []

这个是顺序固定的
回复

使用道具 举报

1

主题

0

好友

39

积分

新手上路

Rank: 1

板凳
发表于 2017-9-1 11:01:37 |显示全部楼层
import itertools

def separateNum(number):  # 将所有排序的数字的分割,然后找到最大值
    listt = []
    listMax = []
    for j in number:
        for i in range(1, len(j)):
            intA = int(j[:i])
            intB = int(j[i:])
            listt.append(intB * intA)
        listMax.append(max(listt))
    print max(listMax)


def permutationMethod(sourceNum):  # 输入一个数字,将其所有的排列装进
    iter = itertools.permutations(sourceNum, len(sourceNum))
    listA = list(iter)
    listB = []
    for i in listA:  # listA的元素是tuple类型的
        strAll = ""
        for j in i:
            strAll += j
        listB.append(strAll)
    separateNum(listB)

listA = []
isTrue = True
while (isTrue):
    input = raw_input("请输入一个大于等于10数字:")
    if input.isdigit():
        if input.__len__() <= 1:
            print "您输入的数字小于10,请重新输入"
        else:
            isTrue = False
            permutationMethod(input)
    else:
        print "请输入一个纯数字"



# 1、输入的纯数字,可以排列出他的所有数字。
# 2、数字确定后,就可以排序了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-5-3 12:12 , Processed in 0.027030 second(s), 21 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部