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使用正则表达式匹配字符串开头并打印示例

    Python使用正则表达式匹配字符串开头并打印示例 正则表达式是一种强大的文本处理工具,可以用于匹配、查找替换等操作。在Python中,我们可以使用re模块来处理正则表达式。本文将详细讲解Python使用正则表达式匹配字符串开头并打印示例的完整攻略,包括正则表达语法、re模块函数和两个示例说明。 正则表达式语法 在Python中,正则表达式语法与其他语言的正…

    python 2023年5月14日
    00
  • Python实现双轴组合图表柱状图和折线图的具体流程

    接下来我将为你详细讲解Python实现双轴组合图表柱状图和折线图的具体流程。本文将分为以下几个部分:准备工作、数据准备、绘制柱状图、绘制折线图、绘制双轴组合图、示例说明。 准备工作 在开始绘制双轴组合图之前,需要安装几个Python库:pandas、matplotlib、numpy。如果你没有安装这些库,可以在命令行中使用以下命令分别进行安装: pip in…

    python 2023年5月13日
    00
  • python中defaultdict的用法详解

    下面是“Python中defaultdict的用法详解”的完整攻略。 什么是defaultdict 在Python中,defaultdict是一个字典子类,它覆盖了一些基本字典的方法,允许我们为字典中缺少的键提供默认值。 当我们使用一个没有被收录到字典中的键的时候,defaultdict会自动为这个键创建一个默认值。 默认值可以是int, list, dic…

    python 2023年6月3日
    00
  • python中的全局变量与局部变量

    1,局部变量与全局变量 1,定义 局部变量:就是在函数体内的变量,在python中冒号“:”后面的变量都是局部变量,当然局部与全局也是一个相对的概念。比如出现函数嵌套的情况。 全局变量:就是在模块中所有函数都可以调用的变量,一般在函数体外被定义。   2,使用过程 函数内的局部变量,在函数体外是不可以使用的,函数内的变量就是局部变量,只在函数体内生效。 例如…

    python 2023年4月25日
    00
  • Python使用os模块和fileinput模块来操作文件目录

    下面是Python使用os模块和fileinput模块来操作文件目录的完整攻略: 1. os模块操作文件目录 os模块可以帮助我们实现文件夹的创建、移动、复制等操作。 1.1 创建文件夹 我们可以使用os模块中的makedirs()函数来创建新的文件夹,它也可以一次性创建多个文件夹。具体的函数调用代码如下: import os # 创建单个文件夹 os.mk…

    python 2023年6月2日
    00
  • 利用在Python中数值模拟研究气体扩散

    当我们想要研究气体扩散时,常常需要进行数值模拟。Python提供了许多用于科学计算的库和工具,可以方便地进行数值模拟和数据可视化。接下来我将详细讲解如何使用Python进行气体扩散的数值模拟。 1. 准备工作 在开始之前,需要安装Python和一些常用的科学计算库,如numpy、matplotlib和scipy。可以使用pip在终端或命令行中安装它们: pi…

    python 2023年6月5日
    00
  • 用python实现学生管理系统

    下面我将为你详细讲解用Python实现学生管理系统的攻略。 学生管理系统的实现 需求分析 在开始编写代码之前,我们需要对需求进行分析,了解系统所需要实现的功能及其所需要的数据。 一个学生管理系统一般需要包括以下功能: 添加学生信息 展示学生信息 修改学生信息 删除学生信息 在本次实现中,我们将使用Python实现其中的三个功能:添加学生信息,展示学生信息以及…

    python 2023年5月30日
    00
  • Python实现自动签到脚本功能

    Python实现自动签到脚本攻略 简介 自动签到脚本是指通过编写Python程序,在网站的签到页面上模拟用户的行为,从而实现自动化签到。利用自动签到脚本可以方便快捷地进行日常签到,提高操作效率。 实现过程 分析签到网站的登录和签到机制 网站登录: 首先需要访问登录页面,获取登录所需的表单数据(如用户名、密码、验证码等)。 接着向网站提交表单数据,进行模拟登录…

    python 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部