http://topic.csdn.net/u/20080705/16/a9070b29-c658-47bc-8807-95b1d700a69f.html

解决方案 »

  1.   

    static void Main(string[] args)
            {
                
                //for (int z = 1; z <1000; z++)
                //  {
                //      if(z%2==0 && z%3!=0)
                //      {
                //          if (cacut(z) > 9)
                //          {
                //              Console.WriteLine("这个数字就不行:" + z);
                //          }
                //          else 
                //          {
                //              Console.WriteLine("这个虽然成立:" + z+"但不知道一个更大的数行不行?");
                //          }    
                //       }
       
                //    }
                int z=89765556;
                if (cacut(89765556) > 9)
                {
                    Console.WriteLine("这个数字就不行:" +z);
                }
                Console.ReadLine();
            }
            
            private static int cacut(int n)
            {
               int step = 0;
               int result=n;
                while (step < 10 && result>1) 
               {
                   int newshu = sum(result);
                   if (result % 2 == 0)
                   {
                       result = newshu * newshu;
                   } 
                   else 
                   {
                       result = newshu * newshu * newshu;
                   }
                  step++;
            }        return step;
        }        private static int sum(int xy)
            {
                int sum = 0;
                while (xy >= 10)
                {
                    sum += xy % 10;
                    xy = xy / 10;
                }
                return sum + xy;
            }    }
      

  2.   


    static void Main(string[] args)
            {
                
                //for (int z = 1; z <1000; z++)
                //  {
                //      if(z%2==0 && z%3!=0)
                //      {
                //          if (cacut(z) > 9)
                //          {
                //              Console.WriteLine("这个数字就不行:" + z);
                //          }
                //          else 
                //          {
                //              Console.WriteLine("这个虽然成立:" + z+"但不知道一个更大的数行不行?");
                //          }    
                //       }
       
                //    }
                int z=89765556;
                if (cacut(89765556) > 9)
                {
                    Console.WriteLine("这个数字就不行:" +z);
                }
                Console.ReadLine();
            }
            
            private static int cacut(int n)
            {
               int step = 0;
               int result=n;
                while (step < 10 && result>1) 
               {
                   int newshu = sum(result);
                   if (result % 2 == 0)
                   {
                       result = newshu * newshu;
                   } 
                   else 
                   {
                       result = newshu * newshu * newshu;
                   }
                  step++;
            }        return step;
        }        private static int sum(int xy)
            {
                int sum = 0;
                while (xy >= 10)
                {
                    sum += xy % 10;
                    xy = xy / 10;
                }
                return sum + xy;
            }    }