c - 如何判断一个数是不是回文?

标签 c palindrome

这是我的代码:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    unsigned int n;
    unsigned long series[100], beck[100];
    int j=0, num=0,temp=0,notflin=0;

    printf("Please enter the length_of the series :\n");

    printf("Please enter the series :\n");
    scanf("%u",&n);

    for(unsigned int f=0; f<n; f++)
    {   series[f]=0;
        scanf("%lu",&series[f]);
    }
        printf("check");
        printf("%u",n);

    for(unsigned int i=(n-1); i>=0 ; i--)
    {
        num=0;
        num=series[i];
        temp=0;
        if (num)
        {
            while((double) num/10!=0)
            {
            temp*=10;
            temp+=(num%10);
            num/=10;
            }
        }

        beck[j]=0;
        beck[j]=temp;
        j++;

    }

    unsigned int s=0,d=0;
    while(1)
    {
        unsigned long num1=0, number=0;
        number=(series[n-1-d]%10);
        num1=(beck[n-1-s]%10);
        if (number!=num1)
        {
            notflin=1;
            break;
        }
        series[n-1-d]/=10;
        beck[n-1-s]/=10;

        if(beck[n-1-s]==0)
            s++;
        if(series[n-1-d]==0)
            d++;
        if (d==(n-1)||s==(n-1))
            break;
    }

    printf(notflin==0? "Yes\n":"No\n");

    return 0;
}

我尝试将输入输入unsigned long beck[],这样最后一个索引中的数字将成为unsigned long series[]中的第一个,然后进行比较索引中的数字。

当我尝试运行代码时,它卡住了。有什么问题?

最佳答案

您可以使用以下代码来判断一个数字是否为回文。如果数字是回文,该方法返回 0,否则返回 -1 -

public int isPalindrome(int number) {

        int temp = number;
        int reverseNumber = 0;
        int rem = 0;

        while (temp != 0) {
            int rem = temp % 10;
            reverseNumber = reverseNumber * 10 + rem;
            temp = temp / 10;
        }

        // if 'number' and reverse of number is equal means
        if (number == reverse) {
            return 0;
        }
        return -1;
    }

关于c - 如何判断一个数是不是回文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30414827/

相关文章:

c - 使用两个 double 类型变量执行 WHILE

c - 确定回文 - 运算符 * 如何工作?

java - 回文程序正在运行但给出错误消息

c - 双指针转换,传递给带有 `const void **ptr` 参数的函数

c - 接收击键

无法在结构数组中正确追加元素

c++ - 为什么为位字段分配值不返回相同的值?

C 中的带有回文检查器的字符指针

c++ - 查找 C++ 中回文的数量

c - C语言的回文查找器?