C#,水仙花数(Narcissistic number)的计算方法及源代码

一、水仙花数(Narcissistic number)

水仙花数(Narcissistic number)也被称为:超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数自幂数阿姆斯壮数阿姆斯特朗数(Armstrong number)。

水仙花数是指一个 3 位数,每个数字的3次幂之和等于它本身。
例如:371 = 3^3 + 7^3 + 1^3

计算过程(动画):

二、更多的水仙花数

这里列出更多的水仙花数(中式命名法):

1、三位自幂数(水仙花儿数 Narcissistic numbers)

153 = 1^3 + 5^3 + 3^3
370 = 3^3 + 7^3 + 0^3
371 = 3^3 + 7^3 + 1^3
407 = 4^3 + 0^3 + 7^3

2、四位自幂数(四叶玫瑰数 Four leaf Roses numbers)

1634 = 1^4 + 6^4 + 3^4 + 4^4
8208 = 8^4 + 2^4 + 0^4 + 8^4
9474 = 9^4 + 4^4 + 7^4 + 4^4

3、五位自幂数(五谷丰登数 Fruitful numbers)

54748 = 5^5 + 4^5 + 7^5 + 4^5 + 8^5
92727 = 9^5 + 2^5 + 7^5 + 2^5 + 7^5
93084 = 9^5 + 3^5 + 0^5 + 8^5 + 4^5

4、六位自幂数(六六大顺数 Auspicious numbers)

548834 = 5^6 + 4^6 + 8^6 + 8^6 + 3^6 + 4^6

5、七位自幂数(北斗七星数 Big Dipper numbers)

1741725 = 1^7 + 7^7 + 4^7 + 1^7 + 7^7 + 2^7 + 5^7
4210818 = 4^7 + 2^7 + 1^7 + 0^7 + 8^7 + 1^7 + 8^7
9800817 = 9^7 + 8^7 + 0^7 + 0^7 + 8^7 + 1^7 + 7^7
9926315 = 9^7 + 9^7 + 2^7 + 6^7 + 3^7 + 1^7 + 5^7

6、八位自幂数(八仙过海数 Eight Immortals numbers)

24678050 = 2^8 + 4^8 + 6^8 + 7^8 + 8^8 + 0^8 + 5^8 + 0^8
24678051 = 2^8 + 4^8 + 6^8 + 7^8 + 8^8 + 0^8 + 5^8 + 1^8
88593477 = 8^8 + 8^8 + 5^8 + 9^8 + 3^8 + 4^8 + 7^8 + 7^8

7、九位自幂数(九九至尊数 Supreme numbers)

146511208 = 1^9 + 4^9 + 6^9 + 5^9 + 1^9 + 1^9 + 2^9 + 0^9 + 8^9
472335975 = 4^9 + 7^9 + 2^9 + 3^9 + 3^9 + 5^9 + 9^9 + 7^9 + 5^9
534494836 = 5^9 + 3^9 + 4^9 + 4^9 + 9^9 + 4^9 + 8^9 + 3^9 + 6^9
912985153 = 9^9 + 1^9 + 2^9 + 9^9 + 8^9 + 5^9 + 1^9 + 5^9 + 3^9

8、十位自幂数(十全十美数 Perfect numbers)

世事本不美,可苦求十全?

注:可,hé,通“何”。

三、源代码

using System;
using System.Text;
using System.Collections;
using System.Collections.Generic;

namespace Legalsoft.Truffer.Algorithm
{
    /// <summary>
    /// 水仙花数(Armstrong Number)的算法
    /// </summary>
    public static class Armstrong_Number
    {
        private static int[,] NumberPow = new int[11, 11];

        public static void Initialize()
        {
            for (int i = 0; i <= 10; i++)
            {
                for (int j = 3; j <= 10; j++)
                {
                    NumberPow[i, j] = (int)Math.Pow(i, j);
                }
            }
        }

        public static string Armstrong_Numbers(int n)
        {
            StringBuilder sb = new StringBuilder();
            long nq = (long)Math.Pow(10, n - 1);
            long np = (long)Math.Pow(10, n);
            for (long i = nq; i < np; i++)
            {
                char[] vs = (i.ToString()).ToCharArray();
                int vk = 0;
                for (int j = 0; j < vs.Length; j++)
                {
                    int vj = (vs[j] - '0');
                    vk += NumberPow[vj, n];
                }
                if (vk == i)
                {
                    sb.AppendLine("<b>" + i + "</b> = ");
                    string vu = "";
                    for (int j = 0; j < vs.Length; j++)
                    {
                        vu += vs[j] + "^" + n + " + ";
                    }
                    sb.AppendLine(vu.Substring(0, vu.Length - 2).Trim() + "<br>");
                }
            }
            return sb.ToString();
        }
    }
}

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

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

相关文章

B站提示:“当前浏览器版本较低……”可行的解决方案(edge浏览器)

文章目录 问题研究和分析使用User-Agent Switcher for Chrome插件的解决方法使用userAgent switcher的解决方法 问题研究和分析 问题&#xff1a;使用最新版浏览器访问B站&#xff0c;首页总是有一条横幅提示&#xff1a;当前浏览器版本较低&#xff0c;为保证您的使用体验&am…

vscode设置terminal的最大行数

今天跑代码出现一个问题&#xff0c;就是整个程序跑完&#xff0c;整个程序的输出信息过多&#xff0c;最开始输出的信息已经被vscode的缓存冲掉了&#xff0c;只能看到最后的一部分&#xff0c;具体的原因是vscode的terminal默认只能保存1000行的信息&#xff0c;所以如果想保…

智慧仓储物流远程监控方案分析

智慧仓储物流远程监控方案分析 随着物联网、大数据、云计算等技术的快速发展&#xff0c;智慧仓储物流逐渐成为现代物流发展的重要方向。远程监控作为智慧仓储物流的重要组成部分&#xff0c;可以有效提高仓储物流的效率、准确性和安全性。 一、智慧仓储物流远程监控方案概述 …

llvm pass

pass们组合在一起&#xff0c;处理IR 而最后的目标代码生成阶段&#xff0c;会生成另一种MIR&#xff08;Machine IR&#xff09; PassManager管理这些pass pass处理IR之后会改变分析的情况&#xff0c;这些关于IR的信息由 AnalysisManager处理 1、pass &#xff08;1&…

在线多端口排课教务管理工具:教育机构管理的得力助手

在现代教育中&#xff0c;教务管理是一个复杂而重要的任务。为了简化这一过程&#xff0c;许多在线教务管理工具应运而生。今天&#xff0c;我将向大家介绍一款名为乔拓云的在线多端口排课教务管理工具。 首先&#xff0c;乔拓云是一个功能强大的教务管理系统。它不仅提供了小程…

Python创建线程

Python 提供了 _thread 和 threading 两个模块来支持多线程&#xff0c;其中 _thread 提供低级别的、原始的线程支持&#xff0c;以及一个简单的锁&#xff0c;正如它的名字所暗示的&#xff0c;一般编程不建议使用 thread 模块&#xff1b;而 threading 模块则提供了功能丰富的…

使用C#操作文件:一个实际案例——替换文件中的IP地址

标题&#xff1a; 使用C#操作文件&#xff1a;一个实际案例——替换文件中的IP地址 介绍&#xff1a; 欢迎阅读我的最新博客&#xff01;今天&#xff0c;我们将探讨如何使用C#来处理一个实际的编程挑战&#xff1a;读取一个配置文件并替换其中的IP地址。这是一个非常常见的…

vue写了debugger谷歌浏览器打开控制台没进断点

vue代码中打了断点&#xff0c;谷歌打开f12进不了断点解决方案如下 1、打开谷歌浏览器控制台&#xff0c;点击设置 2、在 Ignore List 中将“Enable Ignore Listing”勾选去掉&#xff0c;然后就可以正常使用debugger了

Es bulk批量导入数据(1w+以上)

最近在学习es的理论知识以及实际操作&#xff0c;随时更新~ 概要&#xff1a;首先你得有1w条数据的json&#xff0c;然后用java读取json文件导入 一. 创建Json数据 首先我生成1.5w条数据&#xff0c;是为了实践分页查询&#xff0c;用from-size和scroll翻页去实践 生成四个字段…

UG机械制图的基本常识

目前来说工程图就是传递产品信息的工具&#xff0c;所以图纸一定不能出错&#xff0c;因为所有的设计都要转化为生产的输入。 一张完整的工程图应由图框&#xff0c;图素&#xff0c;尺寸标注以及技术要求这四部分组成&#xff0c; 图框包括图纸幅面&#xff1a;A0,A1,A2,A3,…

(2024,VMamba,交叉扫描,线性复杂度,全局感受野,动态权重)视觉状态空间模型

VMamba: Visual State Space Model 公和众和号&#xff1a;EDPJ&#xff08;进 Q 交流群&#xff1a;922230617 或加 VX&#xff1a;CV_EDPJ 进 V 交流群&#xff09; 目录 0. 摘要 3. 方法 3.1 基础概念 3.2 2D 选择性扫描 3.3 VMamba 模型 3.3.1 整体架构 3.3.2 VSS…

nvm, node.js, npm, yarn 安装配置

文章目录 nvm 安装node.js 安装npm yarn 配置 nvm 安装 nvm 是一个 node.js 管理工具&#xff0c;可以快捷下载安装使用多个版本的node.js linux 命令行输入&#xff1a; curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bashwget -qO- https…

电子签名实名认证的必要性解析

电子签名是确保电子文件真实性和完整性的重要手段&#xff0c;而实名认证则是保证电子签名有效性的必要条件。在电子签名过程中&#xff0c;实名认证的作用主要体现在以下几个方面&#xff1a; 确认身份&#xff1a;实名认证能够确认签署者的真实身份&#xff0c;防止冒签、代…

SL1581降压恒压芯片 4V至30V降5V输出 电流2.4A 电路简单

SL1581降压恒压芯片是一款非常实用的电源管理芯片&#xff0c;它能够在4V至30V的输入电压范围内实现5V的稳定输出&#xff0c;同时最大输出电流可达2.4A。相比传统的线性降压电源&#xff0c;SL1581采用了开关电源的原理&#xff0c;因此其电路更加简单、高效和可靠。 在电路设…

决策树、随机森林可视化

分享一个Python可视化工具pybaobabdt&#xff0c;轻松对决策树、随机森林可视化&#xff0c;例如&#xff0c; 图怎么看&#xff1a;每一种颜色代表一个class&#xff0c;link的宽度表示从一个节点流向另一个节点的items数量。 安装 pip install pybaobabdt pip install pygra…

ESC云服务器使用

购买云服务器 选择CPU&#xff0c;内存&#xff0c;选择硬盘大小&#xff0c;选择系统购买。 我买的2C4G40G&#xff0c;用来使用docker部署应用。1个月费用100多点。 购买后&#xff0c;在控制台可以看到实例 远程连接 阿里云客户端 下载客户端&#xff0c;在控制台需要先创…

WPF入门到跪下 第十一章 Prism(一)数据处理

官网&#xff1a;https://primslibrary.com 源码地址&#xff1a;https://guthub.com/PrismLibrary/prism Prism是由微软发布、维护的开源框架&#xff0c;提供了一组设计模式的实现&#xff0c;有助于编写结构良好的且可维护的XAML应用程序&#xff0c;包括MVVM、依赖注入、命…

Android 拍照以及相册中选择(适配高版本)————上传头像并裁剪(一)

前言 在项目研发中&#xff0c;相信大家都遇到过给用户增加头像照片的需求。 随着手机版本的不断更新&#xff0c;android 8、android 9、android 10、android 12、android 13、鸿蒙系统等等&#xff1b;遇到这个功能需求&#xff0c;大家肯定会想&#xff0c;“这还不好写&…

一键AI智能改写,自动修改文章效率高

在当今信息爆炸的时代&#xff0c;写作成为了人们日常生活和工作中不可或缺的一部分。不论是学生写作业&#xff0c;还是职场人士起草报告&#xff0c;都需要投入大量的时间和精力来构思和修改文章。然而&#xff0c;随着科技的不断进步&#xff0c;一项新的技术正在改变着写作…

HTML111111111

在线编辑器 在线 HTML 空元素 没有内容的 HTML 元素被称为空元素。空元素是在开始标签中关闭的。 即使 在所有浏览器中都是有效的&#xff0c;但使用 其实是更长远的保障。 HTML 水平线 标签在 HTML 页面中创建水平线。 hr 元素可用于分隔内容。 HTML 折行 如果您希望…