博客
关于我
Python基础练习之一输出10000以内的阿姆斯特朗数
阅读量:796 次
发布时间:2023-03-07

本文共 806 字,大约阅读时间需要 2 分钟。

阿姆斯特朗数解析与代码优化

阿姆斯特朗数是指一个n位正整数等于其各位数字的n次方之和。例如,153是一个3位数,满足1³ + 5³ + 3³ = 153。

解题思路

  • 遍历数字:使用for循环遍历1到10000的数字。
  • 单独处理不同位数:根据数字的位数,分别处理个位、十位、百位和千位上的数字。
  • 提取各位数字:通过除法和取余运算,逐步提取各位数字。
  • 计算各位数字的n次方之和:根据位数,计算各位数字的相应次方并求和。
  • 判断是否为阿姆斯特朗数:将计算结果与原数比较,若相等则输出。
  • 优化代码

    #!/usr/bin/python3
    # -*- coding: UTF-8 -*-
    print("10000以内的阿姆斯特朗数有:")
    for number in range(1, 10001):
    if number < 10:
    print(number)
    else:
    digits = []
    n = number
    while n > 0:
    digits.append(n % 10)
    n = n // 10
    power = sum([d ** len(digits) for d in digits])
    if power == number:
    print(number)

    总结

  • 练习内容

    • 练习了for循环的使用。
    • 学习了if条件的多种应用。
    • 掌握了如何使用除法和取余运算提取各位数字。
  • 改进思路

    • 使用整除运算符//提取各位数字,避免重复使用int函数。
    • 统一处理数字分解,避免重复代码。
    • 通过循环判断数字位数,确定处理方式。
  • 执行结果

    1 2 3 4 5 6 7 8 9 153 370 371 407 1634 8208 9474

    转载地址:http://uaofk.baihongyu.com/

    你可能感兴趣的文章
    Python 列表删除相同的元素
    查看>>
    Python 列表解析 大文件
    查看>>
    python 列表转字典方法
    查看>>
    Python 列表(List)概述-ChatGPT4o作答
    查看>>
    Python 初学者需要知道的四条建议
    查看>>
    Python 判断字符串是否包含子字符串
    查看>>
    python 判断当前时间是否为零点
    查看>>
    python 利用pandas读取本地中CSV文件的指定列 列名重命名 并保存回本地
    查看>>
    python 利用pyspark读取HDFS中CSV文件的指定列 列名重命名 并保存回HDFS
    查看>>
    python 利用pyttsx3文字转语音
    查看>>
    python 利用已有Ner模型进行数据清洗合并
    查看>>
    python 到大数据开发工程师_如何成为一个大数据开发工程师?
    查看>>
    python 加密解密(base64, AES)
    查看>>
    Python 和Java 哪个更适合做自动化测试?
    查看>>
    python 图片转ico
    查看>>
    python 图片转文字、语音转文字、文字转语音保存音频并朗读
    查看>>
    python 在包含类似字符\x16、\x12、\x某某的数组中将以\x开头的字符找出来的方法
    查看>>
    Python 在并行进程之间共享字典
    查看>>
    Python 垃圾收集器文档
    查看>>
    python 基于 wordcloud + jieba + matplotlib 生成词云
    查看>>