自恋数

当一个n位数的所有数位上数字的n次方和等于这个数本身,这个数就叫自恋数。

显然1,2,3,...,9是自恋数。【比如6的一次方仍然是6】,自恋性数字也是数字黑洞的一种。

水仙花数

三位数中的自恋数,三位数的所有数位上数字的三次方之和等于这个数本身

三位数中的自恋数有四个:153,370,371和407(这四个数被称为“水仙花数”)。

比如371=3的三次方+7的三次方+1的三次方

玫瑰花数

四位数中的自恋数,四位数的所有数位上数字的四次方之和等于这个数本身

四位的“玫瑰花数”有:1634,8208;9474;

五角星数

五位数中的自恋数,五位数的所有数位上数字的五次方之和等于这个数本身

五位的“五角星数”有:54748,92727,93084。

当数字个数大于五位时,这类数字就统称为“自幂数”。

我们使用C#程序获取10万【1~99999】以下的所有自恋数。

使用5个现场进行处理:分一位数、二位数、三位数、四位数、五位数。

控制台NarcissisticNumberDemo源程序如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace NarcissisticNumberDemo
{class Program{static void Main(string[] args){Console.SetWindowSize(110, 30);//当一个n位数的所有数位上数字的n次方和等于这个数本身,这个数就叫自恋数。//水仙花数:三位数中的自恋数,三位数的所有数位上数字的三次方之和等于这个数本身Task taskOne = Task.Factory.StartNew(() => {GetScopeNarcissisticNumber(1, 10, "一");});Task taskTwo = Task.Factory.StartNew(() =>{GetScopeNarcissisticNumber(10, 100, "二");});Task taskThree = Task.Run(() =>{GetScopeNarcissisticNumber(100, 1000, "三");});Task taskFour = Task.Run(() =>{GetScopeNarcissisticNumber(1000, 10000, "四");});Task taskFive = Task.Run(() =>{GetScopeNarcissisticNumber(10000, 100000, "五");});Console.ReadLine();}/// <summary>/// 获取范围内的所有自恋数/// </summary>/// <param name="from">起始数,包含此数</param>/// <param name="to">到倒数,不包含此数</param>/// <param name="digitInfo">位数</param>static void GetScopeNarcissisticNumber(int from, int to, string digitInfo){Console.WriteLine($"[{DateTime.Now.ToString("HH:mm:ss.fff")}]->获取【{digitInfo}】位数的所有自恋数:");int count = 0;for (int number = from; number < to; number++){if (IsNarcissisticNumber(number)){count++;}}Console.WriteLine($"[{DateTime.Now.ToString("HH:mm:ss.fff")}]->【{digitInfo}】位数的所有自恋数共有【{count}】个");}/// <summary>/// 是否是自恋数/// 一个n位数的所有数位上数字的n次方和等于这个数本身,这个数就叫自恋数。/// </summary>/// <param name="number"></param>/// <returns></returns>static bool IsNarcissisticNumber(int number){if (number < 1 || number > 99999){Console.WriteLine($"无效的数字【{number}】,请输入范围在1~99999之间的数");return false;}int originNumber = number;//原始数字Stack<int> stack = new Stack<int>();while (number != 0){stack.Push(number % 10);number = number / 10;}//位数int digit = stack.Count;int sum = 0;//求和while (stack.Count > 0){sum += (int)Math.Pow(stack.Pop(), digit);}if (sum == originNumber){string description = string.Empty;switch (digit){case 3:description = "【水仙花数】";break;case 4:description = "【玫瑰花数】";break;case 5:description = "【五角星数】";break;}Console.WriteLine($"[{DateTime.Now.ToString("HH:mm:ss.fff")}]->【{digit}】位数【{originNumber}】是自恋数。{description}");return true;}return false;}}
}

运行如图

C#自恋数字黑洞—水仙花数、玫瑰花数、五角星数相关推荐

  1. 数字黑洞水仙花数6174卡普耶卡变换,卡布列卡常数归敛

    今天在头条上刷到一篇文章,挺有趣,不想点连接的话我直接把文章考过来了,不知道算不算侵权 头条文章链接 全文: 解析神秘数学黑洞"6174" 或许你早就听过这个故事:有一个神秘的数学 ...

  2. 用python输出所有的玫瑰花数_c语言输出所有得水仙花数,玫瑰花数和五角星数

    展开全部 水仙花数即2113三位的自幂数.所谓自幂数,就是指5261一个 n 位数 ( n≥41023 ),其每位上的数字的1653 n 次幂之和等于本身. 所以水仙花数,首先是三位数,形式为abc, ...

  3. C语言黑洞数字123,20175234 2018-2019-2 个人项目:数字黑洞(三):圣经数

    #20175234 2018-2019-2 个人项目:数字黑洞(三):圣经数 ###来源 这个美妙的名称出自圣经<新约全书>中约翰福音第21章:耶稣对他们说:"把刚才打的鱼拿几尾 ...

  4. 特殊的数独身数,:水仙花数, 四叶玫瑰数, 五角星数, 六合数 ,北斗七星数, 八仙数, 九九重阳数 ,十全十美数...

    特殊的数 你听过一些特殊的数码,如:独身数, 水仙花数, 四叶玫瑰数, 五角星数, 六合数 ,北斗×××数,  八仙数, 九九重阳数 ,十全十美数.说到这你是否和我当初一样好奇呢,这是什么数呢!总的概 ...

  5. 用python输出所有的玫瑰花数_用python实现输出3位水仙花数、玫瑰花数、

    题目 "3位水仙花数"是指一个三位整数,其各位数字的3次方和等于该数本身.例如:ABC是一个"3位水仙花数",则:A的3次方+B的3次方+C的3次方 = ABC ...

  6. c语言打印出水花数,四叶玫瑰数,五角星数等等的数字

    求出0-999999之间的所有"水仙花数"并输出. "水仙花数"是指一个三位数,其各位数字的立方和确好等于该数本身, 如:153=13+53+3^3?,则153 ...

  7. *用for循环求“水仙花数”和“玫瑰花数”

    [ 用for循环求水仙花数和玫瑰花数] 初步了解 for循环: 1.表达式:for(单次表达式1:条件表达式2:末尾循环体3) { 中间循环体4: } 2.执行顺序:表达式1--表达式2--表达式4- ...

  8. 如何用Java做玫瑰花数_c语言如何输出玫瑰花数?(代码示例)

    玫瑰花数又称"四叶玫瑰数",是指四位数各位上的数字的四次方之和等于本身的数. 例如:1634就是一个玫瑰花数1*1*1*1=16*6*6*6=12963*3*3*3=814*4*4 ...

  9. 计算并输出所有的玫瑰花数

    如果一个n位正整数等于它的n个数字的n次方和,则称该数为n位自方幂数.四位自方幂数称为玫瑰花数.编程计算并输出所有的玫瑰花数. #include <stdio.h> #include &l ...

最新文章

  1. 安卓应用安全指南 4.4.3 创建/使用服务高级话题
  2. Asp.Net就业课之三验证控件
  3. chrome开发者工具各种骚技巧
  4. BERT模型实战之多文本分类(附源码)
  5. conformal mapping的理解
  6. Linux网卡配置出错无法联网-联网报错解决方法
  7. Qt窗口操作函数(最大化,全屏,隐藏最大化,最小化)
  8. 关于Firefox浏览器设置默认字体的教程
  9. pc电脑版java模拟器下载安装_PC电脑版java模拟器
  10. 操作 神通数据库_神通大型通用数据库
  11. 根据城市编码提取出省份名和城市名
  12. 文档型数据库MongoDB使用教程
  13. 谷歌浏览器的internet选项在哪里
  14. 开发智能名片小程序时遇到的技术问题以及解决办法
  15. 写给刚接触Auto CAD新人的建议——第三期
  16. 帮我写一个无数爱心滑落的html
  17. android高德地图上加自定义菜单,自定义UI控件-UI界面定制-开发指南-Android 导航SDK | 高德地图API...
  18. SAP术语总结详细版(转)
  19. @ConfigrationProperties + @EnableConfigrationProperties
  20. 基于AIGC的3D场景创作引擎概述

热门文章

  1. [Alpha] Scrum Meeting 8 - TEAM LESS ERROR
  2. jquery plugin --image magnifier 放大器
  3. 软件测试等级abcd,学业水平测试怎样才算过?ABCD等级的分数的范围
  4. U盘中的数据被格式化了怎么恢复?原来数据恢复也很简单
  5. 【高中数学】三棱锥体积公式
  6. 怎么把html封装成桌面应用,如何将一个现有的Vue网页项目封装成electron桌面应用...
  7. 《2022爱分析·营销服一体化实践报告》发布:营销服一体化重塑企业增长新链路
  8. 英文邮件:greetings
  9. 联合会杯-内马尔破门锋霸2球 巴西3-0西班牙3连冠
  10. RISC-V 架构指令集手册 第一册 无特权指令集 中文翻译