题目:编一个程序,输入一个正整数,判定它是否为回文数和降序数。当输入的数为0时,则退出程序,否则继续循环执行程序。
所谓“降序数”是指一个自然数的低位数字不大于高位数字的数。例如: 64, 55, 321都认为是降序数,但是623不是降序数。一位数字被认为是降序数。
所谓“回文数”是指读一个自然数,从正方向读和反方向读,结果是一样的。例如: 646,1551,891232198都认为是回文数。
具体实现代码如下:
1 string str; 2 bool a = true, b = true;//用于判断回文数和降序数 3 int[] nums; 4 Console.Write("请输入一个数(输入0退出):"); 5 str = Console.ReadLine(); 6 if (str.Equals("0")) { break; } 7 nums = new int[str.Length]; 8 9 //赋值和判断降序数 10 for (int i = 0; i < str.Length; i++) 11 { 12 nums[i] = int.Parse(str[i].ToString()); 13 if (i > 0 && nums[i] > nums[i - 1]) { a = false; } 14 } 15 16 //判断回文数 17 for (int i = 0, j = str.Length - 1; i < str.Length && j >= 0; i++, j--) 18 { 19 if (nums[i] != nums[j]) { b = false; } 20 } 21 if (b) { Console.WriteLine("‘{0}’是回文数", str); } 22 else { Console.WriteLine("‘{0}’不是回文数", str); } 23 if (a) { Console.WriteLine("‘{0}’是降序数", str); } 24 else { Console.WriteLine("‘{0}’不是降序数", str); } 25 a = true;b = true;//重置