C#写水仙花数--用到递归


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace NarcissisticNumber
{
    class NarNumber//建立水仙数的类,在Main中调用此类
    {
        public void NarcisNumber()
        {
            Console.WriteLine("*****************输出100~999的水仙花数***************");
            Console .Write("\n\t100~999之间的水仙花数为:");

            for (int i = 100; i <= 999; i++)
            {
                if (judge(i))
                {
                    Console.Write("{0} ",i);
                }
            }
            Console.WriteLine("\n\n****************************************************\n\n");
        }

        public void Narcinumber()//判断四位数是否为水仙数的函数
        {
            Console.WriteLine("*****************输出1000~9999的水仙花数************");
            Console.Write("\n\t1000~9999的水仙花数为:");

            for (int i = 1000; i <= 9999; i++)
            {
                if (Judge(i))
                {
                    Console.Write("{0} ", i);
                }
            }
            Console.WriteLine("\n\n****************************************************\n\n");
        }

        public bool judge(int num)  //判断三位水仙花数的语句
        {
            int a, b, c;
            a = num / 100;
            b = (num - a * 100) / 10;
            c = num % 10;

            if (num == Recurison(a,3) + Recurison(b,3) + Recurison(c,3))
            {
                return true;
            }
            else
            {
                return false;
            }
        }

        public bool Judge(int num)      //判断四位数为水仙数的语句
        {
            int a, b, c, d;
            a = num / 1000;
            b = num % 1000 / 100;
            c = num % 100 / 10;
            d = num % 10;

            if (num == Recurison(a,4) + Recurison(b,4) + Recurison(c,4) + Recurison(d,4))
            {
                return true;
            }
            else 
            {
                return false;
            }
        }

        public int Recurison(int num, int n)  //利用递归计算  a^4
        {
            if (n == 1)
            {
                return num;
            }
            else
            {
                return num * Recurison(num,n-1);
            }
        }

    }

    class Program
    {
        static void Main(string[] args)
        {
            NarNumber a = new NarNumber();//构造新的NarNumber函数
            //判断三位数的调用的函数类
            a.NarcisNumber();
            //判断四位数的调用的函数类
            a.Narcinumber();
            Console.ReadKey();//防止程序闪退
        }
    }
}
在其中用到递归计算次方,例如:a^3,对自己来说回顾了一下新的算法!
首先建立了一个名为NarNumber的类,在主函数Main中通过 new 重新构造函数 NarNumber a = new NarNumber();
//构造新的NarNumber函数
并通过 a 来调用NarNumber中的类
 
  
 
  


你可能感兴趣的:(C#编程)