C#求水仙花数

目录

1.何谓水仙花数

2.求三位数的水仙花数 

3.在遍历中使用Math.DivRem方法再求水仙花数


1.何谓水仙花数

        水仙花数(Narcissistic number)是指一个 n 位正整数,它的每个位上的数字的 n 次幂之和等于它本身。例如,153 是一个 3 位数,它的每个位上的数字的 3 次幂之和为 1^3+5^3+3^3=153,因此 153 是一个水仙花数。

        水仙花数得名于希腊神话中的美少年纳西索斯(Narcissus),他因为爱上自己的倒影而化为水仙花。在数学中,水仙花数是一种具有特定性质的数字,这种性质类似于纳西索斯对自身的迷恋。

        水仙花数在数学上并不常见,但在一些数学问题和谜题中可能会出现。例如,有人可能会要求找出所有三位数的水仙花数,或者找出所有 n 位数的水仙花数。这些问题可以通过编程和数学方法解决,但通常需要一定的计算和推理能力。

2.求三位数的水仙花数 

// 求三位数的水仙花数
namespace _148
{class NarcissisticNumber{static void Main(string[] args){ArgumentNullException.ThrowIfNull(args);for (int i = 100; i < 1000; i++){if (IsNarcissistic(i)){Console.WriteLine(i);}}}/// <summary>/// 这个水仙花数算法的实现很巧妙/// </summary>static bool IsNarcissistic(int number){int sum = 0;int temp = number;while (temp > 0) {int digit = temp % 10;sum += digit * digit * digit;temp /= 10;}return sum == number;}}
}
//运行结果:
/*
153
370
371
407*/

        这段代码首先使用一个循环遍历 100 到 999 之间的所有三位数。对于每个数字,它调用 IsNarcissistic 函数来检查该数字是否为水仙花数。如果是,它将该数字输出到控制台。IsNarcissistic 函数计算给定数字的每个位上的数字的三次幂的和,以检查它是否为水仙花数。如果求和结果等于原始数字,则该数字是水仙花数,函数返回 true;否则,它返回 false。

3.在遍历中使用Math.DivRem方法再求水仙花数

        换个思维,在遍历中使用Math.DivRem方法再求水仙花数,然后,再把找到的水仙花数输出到ListBox控件。

// 求解水仙花数
namespace _148_1
{public partial class Form1 : Form{private Label? label1;private ListBox? listBox1;private Button? button1;public Form1(){InitializeComponent();StartPosition = FormStartPosition.CenterScreen;Load += Form1_Load;}private void Form1_Load(object? sender, EventArgs e){// // label1// label1 = new Label{AutoSize = true,ForeColor = SystemColors.ActiveCaptionText,Location = new Point(12, 9),Name = "label1",Size = new Size(43, 17),TabIndex = 0,Text = "水仙花数的算法是一个三位数,每一位数的立方相" + "\r" + "加等于该数本身。",};// // listBox1// listBox1 = new ListBox{FormattingEnabled = true,ItemHeight = 17,Location = new Point(12, 43),Name = "listBox1",Size = new Size(270, 72),TabIndex = 1};// // button1// button1 = new Button{ForeColor = SystemColors.ActiveCaptionText,Location = new Point(207, 121),Name = "button1",Size = new Size(75, 23),TabIndex = 2,Text = "计算",UseVisualStyleBackColor = true};button1.Click += Button1_Click;// // Form1// AutoScaleDimensions = new SizeF(7F, 17F);AutoScaleMode = AutoScaleMode.Font;ClientSize = new Size(294, 156);Controls.Add(button1);Controls.Add(listBox1);Controls.Add(label1);ForeColor = SystemColors.ControlLightLight;Name = "Form1";Text = "求水仙花数";}private void Button1_Click(object? sender, EventArgs e){listBox1!.Items.Clear();for (int i = 100; i < 1000; i++){int a = i / 100;Math.DivRem(i, 100, out int b);      //获取3位数中的后两位数b /= 10;                             //获取3位数中的第二位数Math.DivRem(i, 10, out int c);       //获取3位数中的第3位数a = a * a * a;                       //计算第一位数的立方b = b * b * b;                       //计算第二位数的立方c = c * c * c;                       //计算第3位数的立方if ((a + b + c) == i)                //如果符合水仙花数listBox1.Items.Add(i.ToString());//显示当前3位数}}}
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot3下Kafka分组均衡消费实现

首先添加maven依赖&#xff1a; <dependency><groupId>org.springframework.kafka</groupId><artifactId>spring-kafka</artifactId><version>2.8.11</version><exclusions><!--此处一定要排除kafka-clients&#xff0c;然…

C++进阶:详解多态(多态、虚函数、抽象类以及虚函数原理详解)

C进阶&#xff1a;详解多态&#xff08;多态、虚函数、抽象类以及虚函数原理详解&#xff09; 结束了继承的介绍&#xff1a;C进阶&#xff1a;详细讲解继承 那紧接着的肯定就是多态啦 文章目录 1.多态的概念2.多态的定义和实现2.1多态的构成条件2.2虚函数2.2.1虚函数的概念2…

网站的上线部署

域名&#xff1a; 原本用于标识互联网上计算机使用的是IP地址&#xff0c;但是由于IP地址不便于记忆&#xff0c;所以人们便设计出来比较容易记忆的域名&#xff0c;然后通过DNS将域名和IP地址关联&#xff0c;这样人们便可以通过记忆域名直接访问到对应的计算机 DNS服务器&am…

Ant Design Pro complete版本的下载及运行

前言 complete 版本提供了很多基础、美观的页面和组件&#xff0c;对于前端不太熟练的小白十分友好&#xff0c;可以直接套用或者修改提供的代码完成自己的页面开发&#xff0c;简直不要太爽。故记录一些下载的步骤。 环境 E:\code>npm -v 9.8.1E:\code>node -v v18.1…

Apache Paimon 使用之 Lookup Joins 解析

Lookup Join 是流式查询中的一种 Join&#xff0c;Join 要求一个表具有处理时间属性&#xff0c;另一个表由lookup source connector支持。 Paimon支持在主键表和附加表上进行Lookup Join。 a) 准备 创建一个Paimon表并实时更新它。 -- Create a paimon catalog CREATE CAT…

RabbitMQ学习总结-延迟消息

1.死信交换机 一致不被消费的信息/过期的信息/被标记nack/reject的信息&#xff0c;这些消息都可以进入死信交换机&#xff0c;但是首先要配置的有私信交换机。私信交换机可以再RabbitMQ的客户端上选定配置-dead-letter-exchange。 2.延迟消息 像我们买车票&#xff0c;外卖…

Python | 机器学习中的模型验证曲线

模型验证是数据科学项目的重要组成部分&#xff0c;因为我们希望选择一个不仅在训练数据集上表现良好&#xff0c;而且在测试数据集上具有良好准确性的模型。模型验证帮助我们找到一个具有低方差的模型。 什么是验证曲线 验证曲线是一种重要的诊断工具&#xff0c;它显示了机…

基于Java+SpringMVC+vue+element宠物管理系统设计实现

基于JavaSpringMVCvueelement宠物管理系统设计实现 博主介绍&#xff1a;5年java开发经验&#xff0c;专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 欢迎点赞 收藏 ⭐留言 文末获取源…

当你能量越来越高的时候, 你开始真正理解每一个人,

在追求个人成长和内心平静的道路上&#xff0c;我们不可避免地会意识到能量频率对于我们自身以及周围人的影响。随着能量越来越高&#xff0c;我们开始真正理解每一个人&#xff0c;意识到世界并非黑白分明&#xff0c;而是充满了各种不同的状态和选择。在这篇博客中&#xff0…

计算机二级C语言的注意事项及相应真题-4-程序设计

目录 31.找出学生的最高分&#xff0c;由函数值返回32.计算并输出下列多项式的值33.将一个数字字符串转换成与其面值相同的长整型整数。可调用strlen函数求字符串的长度34.将字符串中的前导*号全部移到字符串的尾部。函数fun中给出的语句仅供参考35.将一组得分中&#xff0c;去…

算法---滑动窗口练习-7(串联所有单词的子串)

串联所有单词的子串 1. 题目解析2. 讲解算法原理3. 编写代码 1. 题目解析 题目地址&#xff1a;串联所有单词的子串 2. 讲解算法原理 算法的基本思想是使用滑动窗口来遍历字符串s&#xff0c;并利用两个哈希表&#xff08;hash1和hash2&#xff09;来统计窗口中子串的频次。 …

docker容器技术基础入门-1

文章目录 容器(Container)传统虚拟化与容器的区别Linux容器技术Linux NamespacesCGroupsLXCdocker基本概念docker工作方式docker容器编排 容器(Container) 容器是一种基础工具&#xff1b;泛指任何可以用于容纳其他物品的工具&#xff0c;可以部分或完全封闭&#xff0c;被用于…

#QT(定时轮播电子相册)

1.IDE&#xff1a;QTCreator 2.实验&#xff1a; &#xff08;1&#xff09;使用QOBJECT的TIMER &#xff08;2&#xff09;EVENT时间 &#xff08;3&#xff09;多定时器定时溢出判断 &#xff08;4&#xff09;QLABEL填充图片 3.记录 4.代码 widget.h #ifndef WIDGET_H…

批量查询快递不再难,前缀单号助你轻松搞定!

在快递业务日益繁忙的当下&#xff0c;批量查询快递单号成为了许多人的迫切需求。如何能够快速、准确地找到所需的快递单号呢&#xff1f;其实&#xff0c;利用前缀单号进行批量查询是一个高效且实用的方法。下面&#xff0c;就让我们一起了解如何利用前缀单号轻松查找快递单号…

Yolo系列算法-理论部分-YOLOv3

0. 写在前面 YOLO系列博客&#xff0c;紧接上一篇Yolo系列算法-理论部分-YOLOv2-CSDN博客 1. YOLOv3-定型之作 2018年&#xff0c;Redmon团队推出YOLOv3的网络模型&#xff0c;将骨干网络&#xff08;backbone&#xff09;由darknet-19替换成darknet-53网络&#xff0c;加入特…

javaScript脚本语言基础

javaScript脚本语言基础 介绍&#xff1a; JavaScript可以用来实现网页操作(图片切换) 脚本语言&#xff1a;不需要编译 sql html css javaScript 由某种解释器直接可以运行的 JavaScript也是面向对象的&#xff0c;但与java是两种不同的语言 script&#xff1a;脚本 jav…

git reset

参考&#xff1a;https://www.cnblogs.com/lfxiao/p/9378763.html 写完代码后&#xff0c;我们一般这样 git add . //添加所有文件 git commit -m "本功能全部完成" 执行完commit后&#xff0c;想撤回commit&#xff0c;怎么办&#xff1f; git reset --soft HE…

如何用shell脚本构建Android模块

在Android源码编译过程中&#xff0c;shell脚本起到了至关重要的作用。它们不仅用于自动化构建过程&#xff0c;还用于执行各种系统级的任务和测试。下面将详细介绍shell脚本在Android源码编译中的用法&#xff0c;并给出多个具体例子。 Shell脚本在Android源码编译中的基本用…

如何在CasaOS系统玩客云中安装内网穿透工具实现远程访问内网主机下载资源

文章目录 1. CasaOS系统介绍2. 内网穿透安装3. 创建远程连接公网地址4. 创建固定公网地址远程访问 2月底&#xff0c;玩客云APP正式停止运营&#xff0c;不再提供上传、云添加功能。3月初&#xff0c;有用户进行了测试&#xff0c;局域网内的各种服务还能继续使用&#xff0c;但…

Zabbix和Sentinel有什么区别

Zabbix和Sentinel在功能、用途和结构上存在明显的区别。 Zabbix是一个企业级的、开源的、分布式监控套件&#xff0c;主要用于监控IT基础设施的可用性和性能。它可以监控网络和服务的状况&#xff0c;并利用灵活的告警机制&#xff0c;允许用户对事件发送基于邮件、短信、微信…