page contents

python基础编程100例:第48期-快乐的数字

本文讲述了python基础编程100例:第48期-快乐的数字!具有很好的参考价值,希望对大家有所帮助。一起跟随六星小编过来看看吧,具体如下:

attachments-2022-03-oBSuazZY6239243d42df6.png

本文讲述了python基础编程100例:第48期-快乐的数字!具有很好的参考价值,希望对大家有所帮助。一起跟随六星小编过来看看吧,具体如下:

第48期-快乐的数字

1 问题描述

从一个正整数开始,用其每位数的平方之和取代该数,并重复这个过程,

直到最后数字要么收敛等于1且一直等于1,要么将无休止地循环下去且最终不会收敛等于1。

能够最终收敛等于1的数就是快乐的数字。


2 解题思路

第一步: 重复循环,需要使用while True无限循环,到结果为1时结束循环

第二步: 若结果重复出现两次不是一的数,那边会进入死循环,此时就不是快乐的数字

#3 解题方法

x = input('请输入这个数:')

a,m=[x],0

while True:

    y = 0

    for i in range(len(str(a[m]))):

        y += (int(a[m]) // (10 ** i) % 10)**2

    if y == 1:

        print(True)

        break

    if y in a:

        print(False)

        break

    a.append(y)

    m+=1

第1行: 使用input函数输入一个数并赋值给x

第2行: 定义列表a和变量m,并为之分别赋值

第3行: 无限循环直到遇到break结束循环

第4行: 定义变量y并赋值为0,用于计算各位数平方和

第5-6行: for循环根据数字的长度,判断计算次数,每次都给变量y加上各位数的平方

第7-9行: 判断y是否等于1,若等于1,则输出true并结束循环

第10-12行: 若y不等于1,判断y是否之前出现过,若出现过,则表示会出现循环,不可能会再次等于1,输出false并结束循环

第13行: 上述条件均不满足,则在列表a中添加元素y,判断之后是否会再次出现

第14行: m作为索引,用于抓取列表最后一个元素


代码运行结果为:

attachments-2022-03-i7MNpLZJ62392415004fd.png

更多相关技术内容咨询欢迎前往并持续关注六星社区了解详情。

如果你想用Python开辟副业赚钱,但不熟悉爬虫与反爬虫技术,没有接单途径,也缺乏兼职经验
关注下方微信公众号:Python编程学习圈,获取价值999元全套Python入门到进阶的学习资料以及教程,还有Python技术交流群一起交流学习哦。

attachments-2022-06-H1zytd4h62b3c614406f1.jpeg

  • 发表于 2022-03-22 09:20
  • 阅读 ( 1085 )
  • 分类:Python开发

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
轩辕小不懂
轩辕小不懂

2403 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1658 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章