Python-100days-05

Day05 - 总结与练习

练习

练习1:寻找“水仙花数”。

思路:水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),水仙花数,首先是一个三位数,其次每一位数的三次方相加的和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。

def narcissistic_number(num):
    num_str = str(num)
    num_length = len(num_str)
    sum_num = 0
    while num_length:
        sum_num += int(num_str[num_length - 1]) ** num_length
        num_length -= 1
    else:
        if sum_num == num:
            print("%d is a %d bit narcissistic_number"%(num, num_length))
        else:
            pass
            # print("%d is not a narcissistic_number"%num)

if __name__ == '__main__':
    for num in range(100, 1000):
        narcissistic_number(num)

练习2:寻找“完美数”。

思路:完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。如果一个数恰好等于它的因子之和,则称该数为“完全数”。第一个完全数是6,第二个完全数是28,第三个完全数是496,后面的完全数还有8128、33550336等等。

def find_perfect_num():
    for i in range(1, 1000):
        s = 0
        for j in range(1, i):
            if i%j == 0:
                s += j
        if i == s:
            print('%d is a perfect number'%s)
            
if __name__ == '__main__':
    find_perfect_num()

练习3:“百鸡百钱”。

思路:求解《百钱百鸡》问题:1只公鸡5元 1只母鸡3元 3只小鸡1元 用100元买100只鸡。
问公鸡、母鸡、小鸡各有多少只?
计算式:3x+5y+(100-x-y)/3=100

def chicken_num():
    # 公鸡5元每只,100元最多20只
    for x in range (0, 20):
        # 母鸡3元每只,100元最多33只
        for y in range(0, 33):
            # 算出小鸡数
            z = 100 - x - y
            if 5 * x + 3 * y + z / 3 == 100:
                print('公鸡:%d只,母鸡:%d只,小鸡:%d只' %(x, y, z))

if __name__ == '__main__':
    chicken_num()

练习4:生成“斐波那契数列”。

思路:斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)
从数列的第3项开始,每一项都等于前两项之和。

def fibonacci():
    a = 0
    b = 1
    for _ in range(20):
        a, b = b, a + b
        print(a, end=" ")

if __name__ == '__main__':
    fibonacci()
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 8月22日-----字符串相关 2-3 个性化消息: 将用户的姓名存到一个变量中,并向该用户显示一条消息。显示的消...
    future_d180阅读 999评论 0 1
  • Scratch用循环的方法实现斐波那契数列编程心得 1 斐波那契数列 1.1 定义 首先引用秒懂百科里面关于“...
    余江林阅读 784评论 0 0
  • 假设第1个月有1对刚诞生的兔子,第2个月进入成熟期,第3个月开始生育兔子,而1对成熟的兔子每月会生1对兔子,兔子永...
    rainchxy阅读 8,147评论 0 1
  • 学习总结 初识Swift 变量和常量 使用let来声明一个常量,使用var来声明一个变量 例如: 变量和常量的值永...
    书小楷阅读 415评论 2 1
  • 你说 希望可以一个人自在的生活 可是 现实中三五好友欢笑不断 网络上一人沉醉献情不已 我站在其中交错的地方 得到了...
    白牧风阅读 195评论 0 0