用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);

 

posted on 2020-03-28 12:31  北冥道人骑鲲打代码  阅读(866)  评论(0编辑  收藏  举报

导航