博客
关于我
Python基础练习之一输出10000以内的阿姆斯特朗数
阅读量:800 次
发布时间: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/

    你可能感兴趣的文章