炮打蚊子:python解小学三年级数学题

一兄弟读小学三年级孙子遇到算术难题,求教于我这大学生。如下图:
在这里插入图片描述
该题虽然可以推理和心算推出,闲着也是闲着,编个小程序玩玩。

import itertools as it

wt="1345689"
def js(x2,x1,x0):#判别x2,x1,x0是否为答案。
    x5=(x2*100+x1*10+x0)*x0
    x5_s=str(x5)
    if not len(x5_s)==4:return(False)
    x_l=[str(x2),str(x1),str(x0)]
    for x_i in x5_s:
        if (x_i in wt) and (x_i not in x_l):
            x_l.append(x_i)
    if len(x_l)==7:
        return(True)
    else:
        return(False)
    
def pl2wt(wt):#获取wt数字的长度为2的排列序列。
    jglist=[]
    for e in it.permutations(wt, 2):
        jglist.append(e)
    return jglist

for x in wt:
    x0=int(x)
    x5=wt.replace(x,"")
    x5list=pl2wt(x5)
    for y in x5list:
        x2=int(y[0])
        x1=int(y[1])
        if js(x2,x1,x0):
            print("ok",str(x2*100+x1*10+x0)+"*"+str(x0)+"="+str((x2*100+x1*10+x0)*x0))
                

显示结果:ok 954*4=3816

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值