Python 1-9构成3个成加和关系的三位数的计算

该博客探讨了一个数学问题:如何用1到9的数字组成三个不重复的三位数x, y, z,使得x + y = z。作者采用Python编程,首先确定x的值,接着排除x包含的数字,从剩余数字中选取y,最后计算z并验证x + y是否等于z,以确保所有数字都被使用且关系成立。经过检验,没有发现重复结果。" 113658244,10293989,Python正则表达式详解,"['Python', '正则表达式', '字符串处理']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目:将1到9共9个数字构成3个3位数,刚好占用完1-9这九个数字。即:x+y=z(x,y,z均为>=100且<1000的三位数。且x,y,z刚好用完1到9这9个数字).

我的思路。按照不重复的情况,假定x<y。则x<y<x+y=z<1000。2*x<x+y<1000,那么x<500的。我先抽取x这个三位数。

def xint():
    s=[]
    for i in range(1,5):
        for j in range(1,10):
            for k in range(1,10):
                if i!=j and j!=k and i!=k:
                    s.append([i,j,k])

然后在1-9里面排除掉x里面的三个数,就从剩下的6个里面抽第二个三位数y。函数里的n代表第一个数x的3位数的list.

def yint(n:list):
    s=[]
    for i in range(n[0]+1,9):
        for j in range(1,10):
            for k in range(1,10):
                if i!=j and j!=k and i!=k and len({i,j,k}& set(n))==0:
                    s.append([i,j,k])

x+y都抽完了,那么z没得抽了。剩余3个数固定了,只能做数学排序了。最后检验x+y==z是否成立就可以返回结果了。

# -*- coding: utf-8 -*-
"""
Created on Sun Dec 16 15:01:31 2018

@author:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值