zoukankan      html  css  js  c++  java
  • 使用Python求解水仙花问题

    题目:输出所有的水仙花数。所谓水仙花数是指一个3位数,其各位数字的立方和等于该数本身。例如,153是一个水仙花数,因为153 = 1立方 + 5立方 + 3立方。

    解决方法:

    方法一:使用列表推导式

    1 data=[i for i in range(100,1000)if pow(i//100,3)+pow(i//10%10,3)+pow(i%10,3)==i]

    这个方法是比较简单,但是数字只限于100-999,如果超出了这个范围又要在除1000,所以在方法二中我决定使用分解的方法,将一个数字分解成个位、十位、百位、千位、万位等,这样便可以一直求到很大的数字,而且代码还比较简洁。

    方法二:使用函数和循环

     1 def d():
     2     def f(n):
     3         c=list(n[::])
     4         return c
     5     for i in range(100,100000):
     6         d=f(str(i))
     7         s=0
     8         for j in d:
     9             s+=pow(int(j),3)
    10         if(s==int(i)):
    11             print("%d"%s)
    12 d()

    程序运行结果:

    153
    370
    371
    407

    注解:做完题目才发现原来水仙花数只有这4个,可是解决问题的时候我们事先是不知道的,所以我个人还是比较推荐大家选择方法二。

    鹜落霜洲,雁横烟渚,分明画出秋色。暮雨乍歇,小楫夜泊,宿苇村山驿。何人月下临风处,起一声羌笛。离愁万绪,闲岸草、切切蛩吟似织。 为忆芳容别后,水遥山远,何计凭鳞翼。想绣阁深沉,争知憔悴损,天涯行客。楚峡云归,高阳人散,寂寞狂踪迹。望京国。空目断、远峰凝碧。
  • 相关阅读:
    数据结构(2)链表的实现
    vc 调试方法-2
    c语法拾遗-关于指针变量的声明
    收集的一些无聊的网站
    《将博客搬至CSDN》的文章
    黑马程序员-面向对象
    黑马程序员-类加载机制和反射。
    黑马程序员- 正则表达式
    黑马程序员-网络编程
    黑马程序员-File类+递归的简单应用
  • 原文地址:https://www.cnblogs.com/thunderest/p/3037340.html
Copyright © 2011-2022 走看看