c - C中数字的回文

标签 c while-loop numbers palindrome

#include<stdio.h>

int main(void)
{
 int rev=0,temp=0,frwd,n,ans=0;
 int i,j;
    for(i=100;i<=999;i++)
    {   
        for(j=i;j<=999;j++)
        {
            n = i*j;
        frwd = n;
        while(n!=0)
        {   

            temp = n%10;
            n = n/10;
            rev = temp+rev*10;

        }       
        printf("%d",rev);       
        if((rev == frwd)&&(ans<frwd))
        {
            ans=frwd;
            printf("%d",ans);
        }
        }
    }
return(0);
}

我已尝试解决所有问题,但这段代码似乎没有给出正确的输出。 所需的输出是最大的 6 位回文数。 如果我正在运行各个部分,即 number 的反转,检查 number 是否是回文或 for 循环,它们工作正常但在程序中它们将垃圾作为输出。 任何帮助,将不胜感激。

最佳答案

是的,问题是您没有像 cowanother.anon.ard 所说的那样将 rev 重新初始化为 0。尝试将 rev=0 放在内部 for 循环中。

但你不能通过你的方法得到 999999 作为 6 位数字的最高回文数,因为你没有检查所有 6 位数字。

关于c - C中数字的回文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16797489/

相关文章:

c - memcpy 遇到问题

c - 什么是处理 stdio 文件编写函数的返回值的良好编程模式

c - 如果我在分配指针之前不释放它会发生什么

c++ - 在 C/C++ 中创建和发送数据包

C 编程 While 循环赋值

java - 如何摆脱这个 while 循环

C 多个条件 While 循环

haskell - 我可以在 Haskell 中将数字全局限制为只有 3 位小数吗?

python - Python 中的颜色编码数字类似于 Excel 条件格式

MySQL UPDATE 随机数在 1-3 之间