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

yizhihongxing

下面我会详细讲解“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中,字典是一种非常常用的数据类型,它可以将键值对进行映射。这种特性使得字典在实现小型记事本功能时非常方便。下面就以Python使用字典实现的简单记事本功能示例为例,详细讲解实现的过程。 实现过程 首先,需要确定我们要实现的记事本具有哪些基本功能。一般而言,我们需要实现如下功能…

    python 2023年6月3日
    00
  • Python requests lib 花费的时间比它应该做的 get 请求要长

    【问题标题】:Python requests lib is taking way longer than it should to do a get requestPython requests lib 花费的时间比它应该做的 get 请求要长 【发布时间】:2023-04-03 08:23:01 【问题描述】: 所以我有这个代码。每当我运行代码并到达第 3…

    Python开发 2023年4月8日
    00
  • Python爬虫使用代理IP的实现

    Python爬虫使用代理IP的实现 在爬取网站数据时,有些网站会限制同一 IP 地址的请求频率,为了避免被封禁 IP,我们可以使用代理 IP 来发送请求。以下是 Python 爬虫使用代理 IP 的实现方法。 使用 requests 模块发送请求 使用 requests 模块发送请求时,可以通过 proxies 参数设置代理 IP。以下是一个使用 reque…

    python 2023年5月15日
    00
  • Python实现五子棋人机对战 和人人对战

    Python实现五子棋人机对战和人人对战的步骤可以分为以下几个步骤: 安装必要的库 这个项目需要使用到以下库: Pygame: 用于创建游戏窗口、音乐等功能 Numpy: 用于科学计算、数组操作等功能 如果没有安装过这些库,可以通过以下命令来安装: pip install pygame numpy 编写游戏逻辑代码 五子棋游戏的逻辑比较简单,可以使用一个二维…

    python 2023年5月23日
    00
  • 对python自动生成接口测试的示例讲解

    下面是对Python自动生成接口测试的攻略,包含两条示例说明。 1. 什么是自动生成接口测试? 自动生成接口测试是指使用Python等编程语言,通过一些现成的工具包或库来自动化生成接口测试用例、测试报告、模拟请求等等。这可以大大缩短测试的时间,提高测试效率。 2. 示例1:使用unittest框架自动生成接口测试 使用unittest框架自动生成接口测试非常…

    python 2023年5月18日
    00
  • SQLAlchemy – Python 编程错误’转换小数会丢失精度’,’HY000′

    【问题标题】:SQLAlchemy – Python Programming Error ‘Converting decimal loses precision’, ‘HY000’SQLAlchemy – Python 编程错误’转换小数会丢失精度’,’HY000’ 【发布时间】:2023-04-06 13:59:01 【问题描述】: 我正在使用 SQL A…

    Python开发 2023年4月7日
    00
  • Python实现ATM简单功能的示例详解

    Python实现ATM简单功能的示例详解 ATM简单功能介绍 ATM(Automated Teller Machine)自动取款机是现代化金融服务的标志之一,为人们的生活和工作带来了便捷。下面我们以Python实现ATM简单功能为例来了解ATM自动取款机操作的基本过程。 ATM简单功能大致包括: 插卡操作:用户将银行卡插入ATM机中 输入密码:用户输入银行卡…

    python 2023年5月19日
    00
  • 将一个一维数组转换为一个二维Numpy数组

    将一个一维数组转换为一个二维Numpy数组的过程可以使用reshape()函数来实现。reshape()函数接受一个元组作为参数,该元组表示将数组reshape()成的目标尺寸。如果需要将一个一维数组reshape()成一个二维数组,则可以将数组长度作为其中一个尺寸(即一维数组大小),并将另一个尺寸设置为1。下面是具体的步骤和示例: 步骤: 导入Numpy包…

    python-answer 2023年3月25日
    00
合作推广
合作推广
分享本页
返回顶部