原题链接:蓝桥杯算法提高VIP-排列式
解题思路:
分析:积、乘数1、乘数2,的位数之和为9
如此积只能为4位数。一个四位数可以分解为:
①一个1位数*一个4位数
②一个2位数*一个3位数
如果积不是4位数,那么积、乘数1、乘数2,的位数之和得不到9
确定积为四位数之后,积的范围为[1234,9876],遍历检查就可以了。
注意事项:
参考代码:
from math import sqrt def f(): for i in range(1234,9877): for j in range(1,int(sqrt(i))): if i % j == 0: k = i // j temp = set(str(i)+str(j)+str(k)) if len(temp) == 9 and ('0' not in temp): print('{} = {} x {}'.format(i,j,k)) if __name__ == '__main__': f()
0.0分
1 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复