用 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()方法改写了。这个方法是将数的顺序反转,判断反转后的数与原来的数是否相等。