水仙花数的算法(怎样怎样将数字拆分为个位,十位,百位)

 
水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3 + 3^3 = 153) 
             //第一种算法
         for (int i = 100; i < 1000; i++)//i是100-999之间的一个三位数
            {
                int baiwei = i / 100;//获取百位的数字
                int shiwei = i % 100 / 10;//获取十位的数字
                int gewei = i % 10;//获取个位的数字
                if (Math.Pow(baiwei,3)+Math.Pow(shiwei,3)+Math.Pow(gewei,3)==i)//如果百位的3次方和十位的3次方和个位的3次方之和等于这个数则输出
                {
                    Console.WriteLine(i);
                }
            }
            //第二种算法
         for (int i = 0; i < 10; i++)
            {
                for (int j = 0; j < 10; j++)
                {
                    for (int z = 0; z < 10; z++)
                    {
                        if (i*i*i+j*j*j+z*z*z==i*100+j*10+z)
                        {
                            Console.WriteLine(i*100+j*10+z);
                        }
                    }
                }
            }
            Console.Read();
分离一个数字的各个位数的方法:比如675这个数要想得到6,7,5,可以这么写
675/100这表示675整除100得6,即为百位的数字
675%100/10这表示675除以100的余数再除10,即为75/10的7,即为十位的数字
675%10这表示675除以10的余数即为5,即为个位的数字
这样我们就得到了675的每个位的数字


 
posted @ 2011-02-23 16:29  再见雪天  阅读(4852)  评论(0编辑  收藏  举报