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;
}
}
}