回文不起作用

时间:2011-08-05 09:05:06

标签: c#

  

可能重复:
  How do I check if a number is a palindrome?

Hello我想让程序在用户输入数字时检查是否有回文数。但是我的工作根本不起作用......你们能帮助我......

class Program
    {
        static void Main(string[] args)
        {
            int i = 0, j = 0 ;

            int numbers =Convert.ToInt32( Console.ReadLine());
            i = numbers % 10;
            do
            {
               j = numbers / 10;

            }
            while (j < 10);

            if (i == j)
            {
                Console.WriteLine(" this is palindrome number");
            }
            else
            {
                Console.WriteLine("not a palindrome");
      }

6 个答案:

答案 0 :(得分:4)

最快的方法是reverse the string并将其与原始版本进行比较。你真的不需要整数转换。

您可能希望通过剥离前导零(即010)来过滤或更正用户的输入。例如:string number = Convert.ToInt32(Console.ReadLine()).ToString();

答案 1 :(得分:0)

您不必将其转换为整数。 你可以从字符串中查看它。

取第一个字符和最后一个字符进行比较。

迭代第一个指针+1和最后一个指针-1然后比较。

继续此过程,直到您处于字符串的中间位置。

答案 2 :(得分:0)

a disscussion

palindrome check

C# code to check palindrome

您可以关注这些链接。

#include<stdio.h>
#include<math.h>
void main()
{
     long int n, num, rev = 0, dig;
     clrscr();
     printf("\n\n\t ENTER A NUMBER...: ");
     scanf("%ld", &num);
     n = num;
     while(num>0)
     {
          dig = num % 10;
          rev = rev * 10 + dig;
          num = num / 10;
     }
     if (n == rev)
           printf("\n\t GIVEN NUMBER IS A PALINDROME");
     else
           printf("\n\t GIVEN NUMBER NOT A PALINDROME");
     getch();
}

答案 3 :(得分:0)

首先,通过将数字转换为Int32,用户可以输入的位数是有限的。

通过使用模运算,i变量将包含输入数字的最后一位数字。

将数字除以10,j最终应包含输入的第一个数字。但是,除非“j小于10”,否则您不会将其除以“j小于10”时将其除以“有效地使j的内容依赖在输入的位数上。

即使您要修复while条件,此代码也只会检查第一个和最后一个数字,使其仅适用于1,2和3位数字。

答案 4 :(得分:0)

你需要这样的东西:

        bool isPalindrome = true;
        string s = "300212003";
        for (int i = 0; i < (s.Length / 2); i++)
        {
            if (s[i] != s[s.Length - i - 1])
            {
                isPalindrome = false;
                break;
            }
        }
        Console.WriteLine(isPalindrome);

它比恢复字符串并比较它更快,只需要O(n / 2)次操作。

答案 5 :(得分:-1)

当你能以任何一种方式阅读它时,有些东西是回文,所以当反面与原版相同时。 所以只需反转输入字符串并将其与原始字符串进行比较。