2020-11-25
观察数字:
12321,123321 都有一个共同的特征,无论从左到右读还是从右向左读,都是相同的。这样的数字叫做:回文数字。
本题要求你找到一些5位或6位的十进制数字。满足如下要求:该数字的各个数位之和等于输入的整数。
输入
一个正整数 n (10< n< 100), 表示要求满足的数位和。
输出
若干行,每行包含一个满足要求的5位或6位整数。 数字按从小到大的顺序排列。
num = int(input())#输入一个数字
str_x = ""
flge = 0 #标记
def Sm(str_x):
s=0
for i in str_x:
s+=int(i)
return int(s)
for i in range(9999,1000000):#本题要求你找到一些5位或6位
str_x = list(str(i))
if str_x == str_x[::-1] and Sm(str_x)== num:
print(i,end=" ")
flge = 1
else:
if flge == 0: #如果没有满足条件的,输出:-1
print("-1")
如果没有满足条件的,输出:-1
样例输入
44
样例输出
99899 499994 589985 598895 679976 688886 697796 769967 778877 787787 796697 859958 868868 877778 886688 895598 949949 958859 967769 976679 985589 994499
#数字黑洞6174
比如:4312 3087 8352 6174,经过三次变换,得到6174
样例输入:4312
样例输出:3
num = input()
count = 0
def judge(tep) :
while len(tep) != 4:
tep = '0'+ tep
return tep#形成由这四个数字构成的最小
#的四位数(如果四个数中含有0,则得到的数不足四位)
base = 0
num = judge(num)
if num.count (num[0])==4:
print('%s - %s = 0000'%(num,num))
else:
while base != 6174:
a1 = ''.join(sorted(num, reverse=True))
a2 = ''.join(sorted(num))
base = int(a1) - int(a2)
count += 1
num= judge(str(base))
print(count)