用c#判断回文数和降序数
题目:编一个程序,输入一个正整数,判定它是否为回文数和降序数。当输入的数为0时,则退出程序,否则继续循环执行程序。
所谓“降序数”是指一个自然数的低位数字不大于高位数字的数。例如: 64, 55, 321都认为是降序数,但是623不是降序数。一位数字被认为是降序数。
所谓“回文数”是指读一个自然数,从正方向读和反方向读,结果是一样的。例如: 646,1551,891232198都认为是回文数。
具体实现代码如下:
do { string str; bool a = true, b = true;//用于判断回文数和降序数 int[] nums; Console.Write("请输入一个数(输入0退出):"); str = Console.ReadLine(); if (str.Equals("0")) { break; } nums = new int[str.Length]; //赋值和判断降序数 for (int i = 0; i < str.Length; i++) { nums[i] = int.Parse(str[i].ToString()); if (i > 0 && nums[i] > nums[i - 1]) { a = false; } } //判断回文数 for (int i = 0, j = str.Length - 1; i < str.Length && j >= 0; i++, j--) { if (nums[i] != nums[j]) { b = false; } } if (b) { Console.WriteLine("‘{0}’是回文数", str); } else { Console.WriteLine("‘{0}’不是回文数", str); } if (a) { Console.WriteLine("‘{0}’是降序数", str); } else { Console.WriteLine("‘{0}’不是降序数", str); } a = true;b = true;//重置 } while (true);
北冥有时候愚笨,如果文章或代码上有什么表达不对或不恰当的地方,还望各位道友不吝赐教(✿◠‿◠)~~