每日一练:阿姆斯特朗数

在这里插入图片描述

1. 概述

  阿姆斯特朗数(Armstrong number),也称为自恋数自幂数(narcissistic number)、水仙花数,是指一个n位数(n≥3),它的每个位上的数字的n次幂之和等于它本身。换句话说,一个阿姆斯特朗数是一个自幂数(narcissistic number)。
  例如,153是一个阿姆斯特朗数,因为1^3 + 5^3 + 3^3 = 153

2. 实现原理

  • 获取每个位上的数字: 将输入的数字转换为字符串,然后遍历字符串中的每个字符,将其转换为整数。这样就得到了数字的每个位上的数字。
  • 计算每个位上的数字的n次幂之和: 对每个位上的数字进行n次幂运算,并将结果相加。最后,将这个和与原始数字进行比较。

3. 代码实现

3.1 将数字拆分成各个位数,然后计算它们的幂和

def is_armstrong_number(number):
    # 将数字转换为字符串,以便获取每个位上的数字
    num_str = str(number)
    
    # 获取数字的位数
    n = len(num_str)
    
    # 初始化每个位上数字的n次幂之和
    sum_of_powers = 0
    
    # 遍历每个位上的数字
    for digit in num_str:
        # 将每个位上的数字转换为整数,并计算其n次幂
        power = int(digit) ** n
        # 将结果累加到总和中
        sum_of_powers += power

    # 检查是否等于原始数字
    return sum_of_powers == number

# 测试
number_to_check = 153
if is_armstrong_number(number_to_check):
    print(f"{number_to_check} 是阿姆斯特朗数")
else:
    print(f"{number_to_check} 不是阿姆斯特朗数")

3.2 使用数学库中的幂函数

from math import pow

def is_armstrong_number_method2(num):
    # 将数字转换为字符串,以便获取每位数字
    num_str = str(num)
    
    # 计算位数
    n = len(num_str)
    
    # 计算每位数字的n次幂之和
    sum_of_powers = sum(pow(int(digit), n) for digit in num_str)
    
    # 判断是否为阿姆斯特朗数
    return sum_of_powers == num

# 示例
num = 1634
print(f"{num} 是阿姆斯特朗数吗?", is_armstrong_number_method2(num))

4. 参考

https://www.runoob.com/python3/python3-armstrong-number.html

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/211222.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AVFormatContext协议层:理论与实战

文章目录 前言一、协议操作对象结构二、初始化 AVIOContext 函数调用关系三、avio 实战 1:打开本地文件或网络直播流1、示例源码2、运行结果①、解决方法 1②、解决方法 2 四、avio 实战 2:自定义 AVIO1、示例源码2、运行结果 五、avio 实战 3&#xff1…

Vivado版本控制

Vivado版本控制 如果您有幸进入FPGA领域,那么会遇到版本控制问题,本文讲解的是如何用git进行Vivado进行版本控制。 搭建Git环境 一 首先需要一个git环境,并选择一个托管平台(github,gitlab,gitee) Git下载地址&…

【广州华锐视点】广东3D展厅开发服务找广州华锐视点,打造未来展览新体验!

随着科技的不断发展,人们对于信息获取和传播的方式也在不断创新。传统的实体展览馆在空间、时间、地域等方面存在诸多限制,而3D数字展厅则为我们提供了一个全新的解决方案。广州华锐互动致力于为客户提供专业的3D数字展厅定制开发服务,让您的…

滑动平均窗口的定义,优点,缺点,以及目前的应用!!

文章目录 前言一、滑动平均窗口的优点二、滑动平均窗口的缺点三、滑动平均窗口的应用 前言 滑动平均窗口是一种数据处理方法,它以固定的窗口大小对数据进行移动,并在每个窗口内计算数据的平均值。这种方法主要用于平滑数据,减小数据波动的影…

鸿蒙开发学习笔记

快速入门 配置网络权限 1.打开项目的 module.json5 文件 2.在module 里面写下面代码 3.这样就可以使用网络图片了 4.模拟器上就可以正常显示网络图片了 5.官方文档有相吸说明 6. 华为官方编辑工具使用技巧(内置文档),鼠标移动到标签上&…

计算机网络扫盲(1)——因特网

一、概述 因特网是一个世界范围的计算机网络,即它是一个互联了遍及全世界数十亿计算设备的网络。大家对此应该并不陌生,我们身边有着不计其数的计算机设备被接入了因特网,如今计算机网络这个术语似乎已经有点过时了,用因特网的术语…

STM32-GPIO

一、GPIO简介 GPIO(General Purpose Input Output)通用输入输出口 可配置8种输入输出模式 引脚电平:0V~3.3V,部分引脚可容忍5V 输出模式下:可控制端口输出高低电平,用以驱动LED、控制蜂鸣器、模拟通信协议输…

159.库存管理(TOPk问题!)

思路&#xff1a;也是tok的问题&#xff0c;与上篇博客思路一样&#xff0c;只不过是求前k个小的元素&#xff01; 基于快排分块思路的代码如下&#xff1a; class Solution { public:int getkey(vector<int>&nums,int left,int right){int rrand();return nums[r%…

多项式拟合求解

目录 简介 基本原理 例1 例2 例3 参考资料 简介 多项式拟合可以用最小二乘求解&#xff0c;不管是一元高阶函数&#xff0c;还是多元多项式函数&#xff0c;还是二者的混合&#xff0c;都可以通过统一的方法求解。当然除了最小二乘法&#xff0c;还是其他方法可以求解&…

Centos7.9搭建zabbix6.4.0过程及报错注意点

搭建参考此链接即可&#xff1a;https://blog.csdn.net/PerDrix/article/details/129624091 报错整理&#xff1a; 一、zabbix6.0以上版本默认必须安装mysql 8.0.30以上版本数据库&#xff0c;否则服务起不来 二、编译安装zabbix时&#xff0c;必须执行如下操作&#xff0c;…

【STM32】STM32学习笔记-课程简介(1)

00. 目录 文章目录 00. 目录01. 课程简介02. 硬件设备03. 软件工具04. 硬件套件4.1 面包板和跳线/飞线4.2 杜邦线和STM32最小系统板4.3 STLINK和OLED显示屏4.4 LED和按键4.5 电位器和蜂鸣器4.6 传感器和旋转编码器4.7 USB转串口和MPU60504.8 Flash闪存和电机模块4.9 SG90舵机 0…

人工智能中的模型评估

1 概述 1.1 定义 人工智能&#xff08;AI&#xff09;模型评估是一个关键的过程&#xff0c;用于确定模型在特定任务上的性能和有效性。这个过程涉及使用各种技术和指标来衡量模型的准确度、可靠性、泛化能力以及其他重要特性。在不同的应用场景中&#xff0c;模型评估的具体…

深入解析JVM内存结构:Metaspace、堆与垃圾收集器

&#x1f680; 作者主页&#xff1a; 有来技术 &#x1f525; 开源项目&#xff1a; youlai-mall &#x1f343; vue3-element-admin &#x1f343; youlai-boot &#x1f33a; 仓库主页&#xff1a; Gitee &#x1f4ab; Github &#x1f4ab; GitCode &#x1f496; 欢迎点赞…

Overflow Aware Quantization

Overflow Aware Quantization Framework N o _o o​是 amount of arithmetic overflow 辅助信息 作者未提供代码

前端开发环境与真实环境的接口联通的那些最佳实践

1. 背景 前端开发的产物通常是 app.js 、app.css &#xff0c;然后将这些资源放在真实环境域名下进行工作的。 但前端的开发环境通常是本地的 http://localhost:xxx&#xff0c;业务域名可能是 https://xxx.abc.com&#xff0c;两者不在一个域名下在调用接口或者调试时会非常不…

NacosSync 用户手册

手册目标 理解 NacosSync 组件启动 NacosSync 服务通过一个简单的例子&#xff0c;演示如何将注册到 Zookeeper 的 Dubbo 客户端迁移到 Nacos。 介绍 NacosSync是一个支持多种注册中心的同步组件,基于Spring boot开发框架,数据层采用Spring Data JPA,遵循了标准的JPA访问规范…

变量和引用

变量和引用 2.1.深入认识变量 2.1.1.什么是变量 变量是在程序中保存用户数据的一段内存存储空间&#xff0c;变量名是内存空间的首地址 变量三要素&#xff1a;名称、类型、值 2.1.2.变量的名称 组成: 字母、数字、下划线组成&#xff0c;不能以数字开头 变量名称的长…

PyLMKit(4):基于本地知识库的检索增强生成RAG

基于本地知识库的检索增强生成RAG 0.项目信息 日期&#xff1a; 2023-12-2作者&#xff1a;小知课题: RAG&#xff08;Retrieval-Augmented Generation&#xff0c;检索增强生成&#xff09;是一种利用知识库检索的方法&#xff0c;提供与用户查询相关的内容&#xff0c;从而…

代码随想录day3 203.移除列表元素 707.设计链表 206.反转链表

数组是在内存中是连续分布的&#xff0c;但是链表在内存中可不是连续分布的。 双链表 单链表中的指针域只能指向节点的下一个节点。 双链表&#xff1a;每一个节点有两个指针域&#xff0c;一个指向下一个节点&#xff0c;一个指向上一个节点。 双链表 既可以向前查询也可以…

vcomp140.dll是什么意思?vcomp140.dll缺失怎么修复的五个方法

在电脑使用过程中&#xff0c;我们常常会遇到一些错误提示&#xff0c;其中之一就是“由于找不到vcomp140.dll无法继续执行代码”。这个错误提示通常出现在运行某些程序时&#xff0c;给使用者带来了很大的困扰。那么&#xff0c;为什么会出现这个错误呢&#xff1f;又该如何解…