C++和python实现阿姆斯特朗数字查找实例代码

下面我会详细讲解“C++和Python实现阿姆斯特朗数字查找实例代码”的完整攻略,并且给出两条示例。阿姆斯特朗数字指的是一个n位数,它的每个数位的n次方之和等于它本身。比如说153是一个阿姆斯特朗数字,因为:$1^3 + 5^3 + 3^3 = 153$。

C++实现阿姆斯特朗数字查找

  1. 首先定义一个函数 isArmstrong(),用于判断一个数是否为阿姆斯特朗数字。它的输入是一个整数,输出是一个布尔值 true/false。
bool isArmstrong(int num) {
    int sum = 0;
    int temp = num;
    int n = to_string(num).length();

    while (temp != 0) {
        int digit = temp % 10;
        sum += pow(digit, n);
        temp /= 10;
    }

    return sum == num;
}

这个函数的实现很简单,我们通过循环和取模运算来得到每个数位的值,然后将每个数位的值的n次方求和,最后判断求和结果是否和原数相等即可。

  1. 接下来是主函数,我们可以在主函数中输入一个范围,然后遍历这个范围内的数字,判断每个数字是否为阿姆斯特朗数字,如果是,就输出它。

例如,我们要在1到1000之间查找阿姆斯特朗数字:

int main() {
    int start = 1, end = 1000;
    for (int i = start; i <= end; i++) {
        if (isArmstrong(i)) {
            cout << i << " is an Armstrong number." << endl;
        }
    }
    return 0;
}

以上就是一个简单的C++实现。

Python实现阿姆斯特朗数字查找

Python的实现和C++类似,只不过语法稍有不同。以下给出两种Python实现的方式。

实现方式一

  1. 定义函数 is_armstrong(),用于判断一个数是否为阿姆斯特朗数字。和C++实现类似,它的输入是一个整数,输出是一个布尔值 true/false。
def is_armstrong(num):
    n = len(str(num))
    sum = 0
    temp = num
    while temp > 0:
        digit = temp % 10
        sum += digit ** n
        temp //= 10
    return sum == num
  1. 主函数如下,同样是输入一个范围,然后遍历范围内的数字,判断每个数字是否为阿姆斯特朗数字,如果是,就输出它。
def main():
    start = 1
    end = 1000
    for i in range(start, end + 1):
        if is_armstrong(i):
            print(i, "is an Armstrong number.")

实现方式二

  1. 定义函数 armstrong_numbers(),输入是一个数字数字n,输出是一个长度为n的列表,表示1~n中的所有阿姆斯特朗数字。
def armstrong_numbers(n):
    return [i for i in range(1, n+1) if is_armstrong(i)]
  1. 主函数如下,调用 armstrong_numbers() 来得到1~1000中所有的阿姆斯特朗数字。
def main():
    print(armstrong_numbers(1000))

以上就是两种Python实现阿姆斯特朗数字查找的方式。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++和python实现阿姆斯特朗数字查找实例代码 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • 使用Python解决Windows文件名非用反斜杠问题(python 小技巧)

    在Windows系统中,文件路径通常使用反斜杠(\)作为分隔符。但是,在Python中,反斜杠是转义字符,因此在处理Windows文件路径时,需要特别处理。本文将详细讲解如何使用Python解决Windows文件名非用反斜杠问题,并提供两个示例说明。 方法一:使用原始字符串 在Python中,我们可以使用原始字符串来处理Windows文件路径。原始字符串是以…

    python 2023年5月14日
    00
  • 爬山算法简介和Python实现实例

    爬山算法简介和Python实现实例 爬山算法简介 爬山算法(Hill Climbing Algorithm)是一种简单且常用的启发式优化算法。该算法的基本思想是从当前解出发,每次搜索邻域中比当前解更优的解,直到达到一个局部最优解。 但是,爬山算法容易陷入局部最优解,并且不能保证找到全局最优解。因此,在实际应用中常常会利用多次随机化生成多个初始解,或者使用其他…

    python 2023年5月19日
    00
  • Python3 requests模块如何模仿浏览器及代理

    Python3 requests模块如何模仿浏览器及代理 模仿浏览器 在使用Python3 requests模块发送HTTP请求时,可以通过设置请求头来模仿浏览器。以下是一个示例,可以使用Python3 requests模块模仿Chrome浏览器发送HTTP请求: import requests url = ‘https://www.example.com’…

    python 2023年5月15日
    00
  • python 字符串split的用法分享

    Python中的字符串是除数字外最常见的数据类型之一。在处理字符串时,经常需要将一个长的字符串拆分成多个小的部分。Python提供了split()函数来完成这个功能,本文将详细讲解split()的用法。 什么是split()函数 split()函数是Python字符串中的一个内置函数,用来将一个长的字符串拆分(分割)成多个小的部分,形成一个列表。语法如下: …

    python 2023年6月5日
    00
  • python调用shell的方法

    Python 作为一种高级语言,已经被广泛应用于各种领域和场合下。但是在某些情况下,Python需要调用一些比较底层的操作系统命令,例如Shell命令。在这种情况下,Python 可以通过内置 subprocess 模块来调用 Shell 命令。 调用外部命令的两种方式 使用 Python 中的 subprocess 模块,在 Python 中执行 Shel…

    python 2023年6月2日
    00
  • 详解Python3中的正则表达式的基本用法

    详解Python3中的正则表达式的基本用法 正则表达式是一种用于描述字符串模式的语言,可以用于匹配、查找、替换和割字符串。Python中的re模块提供了正则表达式支持,方便进行字符串的处理。本文将详细讲解Python3中正则表达式的基本用法,包括正则表达式语法、re模块的常用函数以及两个用匹配实例。 正则表达式语法 正则表达式由一些特殊字符普通字符组成,用于…

    python 2023年5月14日
    00
  • python子线程如何有序执行

    要让Python子线程有序执行,可以使用以下方式: 1.使用threading模块的Lock()类来实现线程同步。在主线程中定义一个具有初始值的Lock对象,然后在子线程调用该锁进行同步。 示例代码: import threading def worker(lock, num): lock.acquire() print(f"Worker {num…

    python 2023年5月19日
    00
  • 如何在 Windows 上安装 PyGI(Python Gobject Introspection)?

    【问题标题】:How to install PyGI (Python Gobject Introspection) on Windows?如何在 Windows 上安装 PyGI(Python Gobject Introspection)? 【发布时间】:2023-04-02 18:06:01 【问题描述】: 安装python解释器:http://pytho…

    Python开发 2023年4月8日
    00
合作推广
合作推广
分享本页
返回顶部