python小工具:计算1000以内的水仙花(5种方法)

  • A+
所属分类:Python习题

要求:

水仙花是指:abc = a**3 +b**3 +c**3,如:153 = 1**3 +5**3 +3**3

 

代码:

  1. for i in range(100,999):
  2.     a=i//100
  3.     b=(i%100)//10
  4.     c=i%10
  5.     if i==a**3+b**3+c**3:
  6.         print(i)

 

  1. for i in range(1,10):
  2.     for j in range(0,10):
  3.         for k in range(0,10):
  4.            if i*100+j*10+k==i*i*i+j*j*j+k*k*k:
  5.                 print(i*100+j*10+k)

 

  1. for i in range(100, 1000):
  2.     sum = 0
  3.     temp = i
  4.     while temp:
  5.         sum = sum + (temp%10) ** 3
  6.         temp //= 10         # 注意这里要使用地板除哦~
  7.     if sum == i:
  8.         print(i)

 

  1. for i in range(100,999):
  2.     x = int(str(i)[0])
  3.     y = int(str(i)[1])
  4.     z = int(str(i)[2])
  5.     if i==(x**3 + y**3 +z **3):
  6.         print(i)

2017/03/06 新增递归函数,来自python交流群(528770819)>>>print

  1. def tt(temp):
  2.     global sum
  3.     if temp:
  4.         sum=sum+(temp%10)**3
  5.         return tt(temp//10)
  6.     else:
  7.         return sum
  8. for i in range(100,1000):
  9.     sum =0
  10.     temp = i
  11.     if tt(temp)==i:
  12.         print (i)

2017/03/20 新增函数调用

课程内容:Python第十九课:函数:我的地盘听我的

  1. def Narcissus():
  2.     for each in  range(100,1000):
  3.         temp = each
  4.         sum = 0
  5.         while temp:
  6.             sum = sum +(temp%10) **3
  7.             temp =temp // 10
  8.         if sum == each:
  9.             print(each,end='\t')
  10. print('所有的水仙花数分别是:',end='')
  11. Narcissus()

 

李金龙

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: