永发信息网

C#编程水仙花数

答案:1  悬赏:60  手机版
解决时间 2021-04-02 05:54
C#编程水仙花数
最佳答案
闲来无事做了个。可以查找任意位数的水仙花数。

虽然使用了缓存存储自然数的幂,但运算到7位以上依旧非常慢。
public static int[] 整数转数组(int i) {
            string s = i.ToString();
            var re = new int[s.Length];
            for (int k = 0; k < s.Length; k++) {
                re[k] = int.Parse(s.Substring(k,1));
            }
            return re;
        }

        static void Main(string[] args) {
            int n1 = 3; //开始位数
            int n2 = 5; //结束位数
            SortedList> 结果 = new SortedList>();

            //遍历开始位数 ~ 结束位数
            for (int n = n1; n <= n2; n++) {
                //创建n位数的结果列表
                var 列表 = new List();
                结果.Add(n, 列表);
                Console.WriteLine(n + "位数:");
                //创建n位数幂的缓存1 ~ 9数字的n次方整数
                int[] nx = new int[10];
                for (int k = 0; k <= 9; k++) {
                    nx[k] = (int)Math.Pow(k, n);
                }
                //遍历100 ~ 999,更多位数类推
                int start = (int)Math.Pow(10, n - 1); // 百位数开始值 100 
                for (int i = start; i < start * 10; i++) {
                    //分解i为数组
                    var arr = 整数转数组(i);
                    //求各位数的幂的和
                    int sum = 0;
                    for (int j = 0; j < arr.Length; j++) {
                        sum += nx[arr[j]];
                    }                  
                    //判断
                    if (sum == i) { 列表.Add(i); Console.WriteLine(i); }
                }
            }

            Console.WriteLine("{0} ~ {1} 位数的水仙花数查找完毕。", n1, n2);
            Console.ReadKey();     
        }如满意,请采纳,谢谢。

追问能给一下流程图吗
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
2.0老马三夏天水箱开锅什么原因
、在photoshop中有哪几种通道:
喜不喜欢逆乱青春伤不起
回分是什么意思
谁给我介绍惊声尖叫3内容?
肯德基王者荣耀套餐没有收到闪卡?买了那个人
读图回答问题:(1)两图中甲为南亚______月
layui表格重载报错
舞狮运动在高校开展的意义
嗯表示哭的词语
暖春电视剧的真实背景?
法院认可的利息最低是多少
电信欢卡怎么取消
佛山市顺德区驾联机动车驾驶培训有限公司容桂
求崩坏三的这张图高清的 崩坏三的标可以有,
推荐资讯
朱门宫墙,寂寞了一世清高;缤纷落英,撩起了
身体储备脂肪是均匀储备还是在一个地方
哪位大虾有灯的资料呀
为什么大雅查重显示13%下载文件确是28%
c 的化学性质
有懂切纸机器的朋友吗,这个盘怎么拆下来知道
゛昔素颜- ゛浅时光- ゛淡年华- ゛旧萤火- ゛
在婚前男方首付的房子,打算房子写上女方的名
为什么光梦到自己结婚光因为化妆没化好结不了
LOL 为什么大嘴以前出三项破败,现在出羊刀飓
山东潍坊昌乐县鄌郚镇的邮政编码是多少?
请问,苏州北寺塔为什么周围的建筑要低于它?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?