方法1:

这是一开始想到的方法,代码稍微有点长。
首先,确定a数的范围,然后,取出a数其他位数上的数,存入列表中,a数各位上的数进行比较,然后根据a求出b的值,然后对b进行筛选,选出符合要求的b值。具体代码如下:
#得到a数中的各位上的数
def get_wei(a):
w = a // 10000 # 万位
q = a % 10000 // 1000 # 千位
b = a % 1000 // 100 # 百位
s = a % 100 // 10 # 十位
g = a % 10 # 个位
return [w,q,b,s,g]
#判断输入的位数上的数是否会有重复
def is_repetition(a):
list_a=get_wei(a)
zero=0
for i in list_a:
if i = =0:
zero+=1
if zero<=1:
if str(list_a[0]) not in str(a % 10000) and str(list_a[1]) not in str(a % 1000)
and str(list_a[2]) not in str(a % 100) and list_a[3] != list_a[4]:
return True
else:
return False
#判断b上的数是否有和a的重合的
def is_exclude(a,b):
list_b=get_wei(b)
k=0
for i in list_b:
if i not in get_wei(a):
k+=1
if k==5:
return True
else:
return False
#a,b的最大值是98765,但是b比a要大20295,姑且取a最大范围为78469
for a in range(10234,78470):
if is_repetition(a):
b = a + 20295
if is_exclude(a,b) and is_repetition(b):
print({“a”:a,“b”:b})

方法2:

这个方法是利用python的库,将0-9的数字进行排列组合,最后进行筛选。代码如下:
from itertools import permutations
for i in permutations(list(‘0123456789’)):
a=int(’’.join(i[:5]))
b=int(’’.join(i[5:]))
if a>10000:
if a+20295==b:
print(a,b)

方法3:

人狠话不多,直接上代码:
answer = [(a, a + 20295) for a in range(10234, 100000 - 20295) if len(set(str(a) + str(a + 20295))) == 10]
print(answer)

最后总结:

在做算法的时候要考虑到时间复杂度,同时学会利用好库,以及一些基础语法。
来看看最后的三个结果:

用0到9十个数字,每个数字使用一次,构成两个五位数a和b,并且a+20295=b.求a,b相关推荐

  1. 用matlab仿真0到9十个数字的语音识别

    用matlab仿真0到9十个数字的语音识别 关注次数: 445 下载次数: 31 文件大小: 109K 下载需要积分: 1 代码分类: 开发平台: matlab 上传会员: 8211041 下载代码 ...

  2. LeetCode-剑指 Offer 53 - II. 0~n-1中缺失的数字

    剑指 Offer 53 - II. 0-n-1中缺失的数字 思路一:简单for循环找 class Solution {public:int missingNumber(vector<int> ...

  3. 给定0~N之间的N个数字(大于等于0,小于N,不重复)进行按小到大排列(不用其它的经典排序算法)

    1 问题 比如我们给定0~N之间的N个数字(大于等于0,小于N,并且不重复)进行按小到大排列,比如N是5,我们给定数据{3, 2, 1, 0, 4},我们按照从小到大的排名最后就是{0, 1, 2, ...

  4. 【算法】剑指 Offer 53 - II. 0~n-1中缺失的数字

    1.概述 剑指 Offer 53 - II. 0-n-1中缺失的数字 一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0-n-1之内.在范围0-n-1内的n个数字中有且只有一 ...

  5. n-1 java_【Java】 剑指offer(53-2) 0到n-1中缺失的数字

    本文参考自<剑指offer>一书,代码采用Java语言. 题目 一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0到n-1之内.在范围0到n-1的n个数字中有且只 ...

  6. 【C++代码】约瑟夫环问题:0,1,……,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字。求出这个圆圈里剩下的最后一个数字。

    问题描述:0,1,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字.求出这个圆圈里剩下的最后一个数字. 这是力扣上的一道题.我的思路: ①首先想到的是用循环链表,每次向后遍历 ...

  7. 小明对数位中含有 2、0、1、9 的数字很感兴趣,在 1 到 40 中这样的数包 括 1、2、9、10 至 32、39 和 40,共 28 个,他们的和是 574。 请问,在 1 到 2019 中,所

    试题 A: 求和 本题总分:5 分 [问题描述] 小明对数位中含有 2.0.1.9 的数字很感兴趣,在 1 到 40 中这样的数包 括 1.2.9.10 至 32.39 和 40,共 28 个,他们的 ...

  8. maatwebsite/Excel 3.0 导出 Excel 如何设置长数字为文本

    maatwebsite/Excel 3.0 导出 Excel 如何设置长数字为文本 我这里是 'C' 这几列是超过 15 位数字,自动转换为了科学计数法,所以直接绑定这几列即可. https://gi ...

  9. 剑指 Offer 53 - II. 0~n-1中缺失的数字(二分查找)

    /*** 剑指 Offer 53 - II. 0-n-1中缺失的数字* @author wsq* @date 2020/10/08一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在 ...

  10. 给定n个整数(0-100),其中0可以替换成任意其他数字,如数组{98,99,100,1,2,3} 视为连续,要求判断这n个整数是否连续?

    该题目为某IT公司的笔试题目 题目: 给定n个整数(0-100),其中0可以替换成任意其他数字,如数组{98,99,100,1,2,3} 视为连续,要求判断这n个整数是否连续?若是连续数组,返回tru ...

最新文章

  1. windows7 设置 Local Settings权限为可以访问
  2. (pwn) C语言 write函数且使用write函数泄露 libc版本
  3. .NET实现SOA(1)
  4. Oracle E-Business Suite 12.1.1 Rapid Clone
  5. python爬网盘数据犯法吗_python爬取疫情数据的源码
  6. 【数据结构与算法】复杂度分析
  7. windows下如何在命令行里切换到任意目录
  8. Windows小工具广告弹窗杀手+源码
  9. 数据结构:二叉搜索树(BST)全部基本操作
  10. 「leetcode」C++题解:四数之和 / 4Sum 三数之和的延伸,建议使用双指针法
  11. [转载]Mapx常见问题
  12. SHP格式以及SHP矢量数据编辑软件ShpEditor介绍
  13. html实现颜色色板,JS实现的系统调色板完整实例
  14. 交通标志 | 中美两国警告标志异同分析
  15. 重装windows10系统自定义安装时未出现分区,解决方法之一
  16. Chrome谷歌浏览器安装crx后缀插件方法
  17. Spark独到见解--Action算子总结
  18. 厦门大学计算机2018专业分数线,2018厦门大学录取分数线,2018厦门大学各专业录取分数线...
  19. tftp服务器怎么开启linux,CentOS 6.4 tftp服务器配置--使用tftp下载并启动内核
  20. Mask R-CNN结构细节回顾

热门文章

  1. 距离传感器控制灯泡代码_如何使用颜色传感器和超声波传感器检测障碍物和避障...
  2. 2022-2028年中国塑料鞋行业市场发展调研及未来前景规划报告
  3. c语言函数传参时候的类型强制装换
  4. mysql/mariadb centos7 修改root用户密码及配置参数
  5. MindSpore部署图像分割示例程序
  6. Pass Infrastructure基础架构(上)
  7. Android中Messenger进程间通信
  8. 【CV】吴恩达机器学习课程笔记第11章
  9. ndk 路径修改 超简单的方法
  10. Android studio 导入jar 文件