水仙花

实现过程:
首先确定范围,因为水仙花数是三位数,所以从 100 开始到 999 结束进行遍历。对于每一个数,通过数学运算获取它的百位、十位和个位数字,具体做法是用整除和取余操作来实现,例如对于一个数 n,n / 100 能得到百位数字,(n % 100) / 10 可得到十位数字,n % 10 就是个位数字。获取这三个数字后,计算它们的立方和,即百位数字的立方、十位数字的立方、个位数字的立方相加起来,再将这个和与原数进行比较,如果相等,就说明这个数是水仙花数,然后把它输出或者存储起来以便后续查看统计等操作。

遇到问题及解决:
在计算各个数位数字时,一开始出现取整和取余运算的逻辑错误,比如取十位数字的时候计算方式有误,导致得到的数位数字不准确,进而影响对水仙花数的判断。经过仔细梳理数学运算过程,重新调整了取各个数位数字的代码逻辑,反复测试验证不同的三位数,确保能准确获取百位、十位、个位数字,从而正确判断是否为水仙花数。

全部评论

相关推荐

import numpy as npn = input().split(' ')l = []for i in range(len(n)):   if n[i] == 'J':        n[i] = '11'   elif n[i] == 'Q':        n[i] = '12'   elif n[i] == 'K':        n[i] = '13'   elif n[i] == 'A':        n[i] = '14'   l.append(int(n[i]))for num in l:    if num == 2:        l.remove(num)l.sort()l = np.unique(l)res = []res.append(l[0])#print(l)a = 1while a     for b in l:        if b+1 == l[a]:            res.append(l[a])    a+=1count = 0for i in res:    if i == 11:        i = 'J'    elif i == 12:         i = 'Q'    elif i == 13:         i = 'K'    elif i == 14:         i = 'A'    print(i,end=' ')    count+=1    if count%5==0:        print('\n')哎,看错题了以为5个来的顺子
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务