水仙花数<大家帮助研究下,高位数的 怎么设计>

水仙花数是指一个n(n>=3)位数,每一位数字的n次幂的和正好等于这个数本身。用c#编程查找一定范围内的水仙花数

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

namespace ShuiXianHuaShu{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("请输入一个上限值:(小于" + long.MaxValue.ToString() + ")");
            long MAX = Convert.ToInt64(Console.ReadLine());
            long[] SXH = Find(MAX);
            foreach (long i in SXH)
            {
                Console.Write(i+",");
            }
            Console.Write("……");
            Console.ReadKey();
        }

        public static long[] Find(long Max)
        {
            long[] array1 = new long[Max];
            long index=0;
            for (long i = 100; i < Max; i++)
            {
                long[] array2 = divide(i);
                long sum = 0;
                for (long j = 0; j < array2.Length; j++)
                {
                    sum += Convert.ToInt64(Math.Pow(array2[j], WeiShu(i)));
                }
                if (sum == i)
                {
                    array1[index] = sum;
                    index++;
                }
            }
            long[] array3 = new long[index];
            for (long i = 0; i < index; i++)
            {
                array3[i] = array1[i];
            }
            return array3;
        }
        private static long[] divide(long sum)
        {
            long[] array1 = new long[7];
            long index = 0;
            while (sum != 0)
            {
                array1[index] = sum % 10;
                sum /= 10;
                index++;
            }
            long[] array2 = new long[index];
            for (long i = 0; i < index; i++)
            {
                array2[i] = array1[i];
            }
            return array2;
        }
        private static long WeiShu(long sum)
        {
            long i = 0;
            while (sum != 0)
            {
                i++;
                sum /= 10;
            }
            return i;
        }
    }
}

posted @ 2011-06-15 20:17  bjlhx15  阅读(316)  评论(1编辑  收藏  举报
Copyright ©2011~2020 JD-李宏旭