你知道黑洞数有哪些吗(修改版,对源代码进行了完善)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
你知道黑洞数有哪些吗?
本人来告诉你有哪些黑洞数。
黑洞数的定义:由这个数每位上的数字组成的最大数减去每位数字组成的最小数仍然得到这个数自身。例如,3位黑洞数是495,因为954-459=495。
现在告诉你几个黑洞数,3位黑洞数是495,4位黑洞数是6174,无5位黑洞数,6位黑洞数是549945、631764,无7位黑洞数,8位黑洞数是63317664、97508421,9位黑洞数是554999445、864197532。
用Python编制找出黑洞数的代码如下:
def main(n):
list1=[];list2=['已循环次数:']
start=10**(n-1)
end=10**n;j=int(start+(end-start)/10)
for i in range(start,end):
big=''.join(sorted(str(i),reverse=True))
little=''.join(reversed(big))
big,little=map(int,(big,little))
if big-little==i:
print('黑洞数:',i)
list1.append(i)
if i==j:
print('已循环次数:',j-start)
list2.append(j-start)
j+=int((end-start)/10)
if list1==[]:
print('无',n,'位的黑洞数,','本次共循环次数i=',i+1)
list1=['无黑洞数']
list2.append(i+1)
return list1,list2
else:
print('本次共循环次数i=',i-start+1)
list1.insert(0,'黑洞数:')
list2.append(i-start+1)
return list1,list2
with open(r'C:\黑洞数及循环次数.txt','a+') as fp: print(main(6),file=fp)