本帖最后由 jcpython2 于 2022-9-20 23:26 编辑
老哥能否帮我看看我的代码
我理解楼主的题目是输入六位整数N
分别乘以2-9
那一个结果得出的数是由N里各种数字组成的
例:
输入561307
得出 9
以下是我的菜鸟代码,请忽略我那些菜鸟备注,请告诉一下我,我的代码思路是否正确? 能怎么简化?
#输入 s 六位数
s = int(input())
r = [2,9] #r=2-9
total = 0 #敏合次数
ok = [] #符合条件的列表
#循环取出2-9代入i
for i in range(2,10):#要验证2-9包含9则range需到10,10 不验证
#待验证数n = s * i(如S *2)
total = 0
n = s * i
print('验证',i,',','i:',i,'* s:',s,'n=',n,)
#循环y in n
for y in str(n): #n为int不能迭代,需转为str
if y in str(s): #y此时代表着待验证数n的数值,逐个抽取去和s碰撞
total += 1
else:
print('n:',n,'内的:',y,'不在',s,'跳出循环')
break #只要有一个y不在s直接break,此break跳过14行循环回到第8行循环,但会继续执行第20行代码
if total == len(str(n)):
print(i,'符合加入列表')
ok.append(i)
print()
print('当s=',s,'敏合的有',ok)
输出561307
验证 2 , i: 2 * s: 561307 n= 1122614
n: 1122614 内的: 2 不在 561307 跳出循环
验证 3 , i: 3 * s: 561307 n= 1683921
n: 1683921 内的: 8 不在 561307 跳出循环
验证 4 , i: 4 * s: 561307 n= 2245228
n: 2245228 内的: 2 不在 561307 跳出循环
验证 5 , i: 5 * s: 561307 n= 2806535
n: 2806535 内的: 2 不在 561307 跳出循环
验证 6 , i: 6 * s: 561307 n= 3367842
n: 3367842 内的: 8 不在 561307 跳出循环
验证 7 , i: 7 * s: 561307 n= 3929149
n: 3929149 内的: 9 不在 561307 跳出循环
验证 8 , i: 8 * s: 561307 n= 4490456
n: 4490456 内的: 4 不在 561307 跳出循环
验证 9 , i: 9 * s: 561307 n= 5051763
9 符合加入列表
当s= 561307 敏合的有 [9]
|