Asp.NET Tutorials
Home > C#语言 > 判断一个整数是否是对称数

Hot archives

判断一个整数是否是对称数
Author:追风 From:Internet

  昨天到一家公司笔试,做了一道判断一个整数是否是对称数的题.要求用Pascal语言,回来后我也用C#来实现.算法如下,期望对初学C#的朋友有点帮助.这里我用了两种算法实现.
  算法一,先取首个与末个数字比较,再取第二个与倒数第二个字符比较,以此类推...在每一次比较中若不相等则返回一个为false的bool值,即这个数不是对称数.具体程序如此而已下:
using System;
namespace ConsoleApplication3
{
 /// <summary>
 /// Summary description for Class1.
 /// </summary> 
 class Class1
 {  
  public static void Main()
  {
   int a=36455463;
   bool flag;
   flag=Symmetry(a);
   if(flag)
    Console.WriteLine(a+"是对称数!");
   else
    Console.WriteLine(a+"不是对称数!");
  }
  public static bool Symmetry(int Val)
  {
     string s;
     s=Val.ToString();
     char x,y;
     bool flag=true;  //如果Val是对称数flag为真,否则为假
     for(int i=0;i<s.Length/2;i++)
     {
   x=s[i];
       y=s[s.Length-1-i];
   if(x!=y)
   {    
        flag=false;  //不是对称数
   }
     }
     return flag;
  }
  }
}


  算法二,先定义一个字符串,按倒序的方式读入这个整数依次用连接字符串的文法赋给这个串.最后比较两个字符串是否相等.若不相等则返回一个为false的bool值,即这个数不是对称数.具体程序如此而已下:
using System;


namespace ConsoleApplication3
{
 /// <summary>
 /// Summary description for Class1.
 /// </summary> 
 class Class1
 {  
  public static void Main()
  {
   int a=36455463;
   bool flag;
   flag=Symmetry(a);
   if(flag)
    Console.WriteLine(a+"是对称数!");
   else
    Console.WriteLine(a+"不是对称数!");
  }
  public static bool Symmetry(int Val)
  {
   string s,x="";
   s=Val.ToString();
   bool flag=true;  //如果Val是对称数flag为真,否则为假
   for(int i=s.Length-1;i>=0;i--)
   {
    x=x+s[i];
    
   }
   Console.WriteLine(s+"  "+x);
   if(s.Trim()!=x.Trim())
   {     
    flag=false;  //不是对称数
   }
   return flag;
  }
 }
}

Add by : Huobazi (2005-11-15:06:45)