解题思路:
①根据条件缩小第一个数的取值范围,因为最大为987,最小为123,故第一个数最小为123,最大为987的三分之一即329.对此范围的数进行遍历。
②通过set()函数去重,然后判断集合元素个数是否为3/6/9,最后判断所有组成的数字中有没有零,即可保证三个数不重复地由1~9组成。
注意事项:
注意最后输出格式,一行三个数为一个结果,中间空格隔开。
参考代码:
for i in range(123,330):#范围可以在缩小,最大987,他的三分之一为329,并且第二个和第三个一定是偶数和三倍数 if(len(set(str(i)))==3 and len(set(str(i)+str(2*i)))==6):#set()去重 s=set(str(i)+str(2*i)+str(3*i)) if(len(s)==9 and '0' not in s):#保证最后是1~9而没有0出现 print('{} {} {}'.format(i,2*i,3*i))
0.0分
1 人评分
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:1885 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:522 |
C语言考试练习题_排列 (C语言代码)浏览:1326 |
C语言训练-排序问题<1> (C++代码)浏览:603 |
简单的a+b (C++语言代码)浏览:860 |
C语言训练-计算t=1+1/2+1/3+...+1/n (C语言代码)浏览:908 |
图形输出 (C语言代码)浏览:1387 |
简单的a+b (C语言代码)浏览:512 |
【魔板】 (C++代码)浏览:1161 |
马拦过河卒 (C语言代码)浏览:1099 |