用 C# 编程求 1到 n 的对称数

假设 n 为 1,000,000吧,Console 会显示不出来前面一部分数。可以将 n 设小些,比如说10000。在下面的C#程序代码中,n为 maxnumber 的整型(int)变量名。

public static bool findNumber(int n)
{
    string number = n.ToString();
    
    for (int i = 0; i < number.Length / 2; i++)
    {
        if (number[i] != number[number.Length - 1 - i]) return false;
    }

    return true;
}

public static void Main(string[] args)
{
    int maxnumber = 1000000;

    for (int i = 1; i <= maxnumber; i++)
    {
        if (findNumber(i))
        {
            Console.WriteLine(i);
        }
    }
}

上面所编写的程序是一种拆分字符串的方法,此方法在网上极为常见的。下面是另一种方法:

public static bool findNumber(int n)
{
    int nValue = 0;
    int temp = n;
    while (temp > 0)
    {
        nValue = nValue * 10 + temp % 10;
        temp /= 10;
    }
    return (nValue == n);
}

把findNumber()方法改写了。这个方法是将数的顺序反转,判断反转后的数与原来的数是否相等。

posted on 2009-11-30 11:09  豆豆の爸爸  阅读(823)  评论(1编辑  收藏  举报