我有一个小项目,我必须编程一个算法,计算一个数字的两个回文。
每个示例:如果输入为367,则结果为367763和763367。
我知道如何检查这个号码是否是回文。但我必须创建两个回文,它有点不同,我找不到答案。
在解谜之前,我是一个编程新手,想学点东西,我已经试着解决了这个问题,找了很多。
这是我用来检查数字是否为回文的代码:

    #include <stdio.h>
int main()
{
   int num, reverse_num=0, remainder,temp;
   printf("Enter an integer: ");
   scanf("%d", &num);
   temp=num;
   while(temp!=0)
   {
      remainder=temp%10;
      reverse_num=reverse_num*10+remainder;
      temp/=10;
   }
   if(reverse_num==num)
      printf("%d is a palindrome number",num);
   else
      printf("%d is not a palindrome number",num);
   return 0;
}

最佳答案

您的代码已经同时具有numreverse_num。你所要做的就是在if else语句中一个接一个地打印它们那是为了“即刻满足”。

if(reverse_num==num) {
   printf("palindrome1 = palindrome2 = %d%d\n", num, num);
}else{
   printf("palindrome1 = %d%d\n",num, reverse_num);
   printf("palindrome2 = %d%d\n",reverse_num, num);
}

如果你真的想把回文作为实际的整数来计算,那就再多写几行代码添加一个计数器,用于在计算reverse_num时跟踪小数位数我们可以很容易地在这里发布代码,但这是学习C语言的一个简单而好的练习,如果你自己做的话,你会得到更多的代码。
当然,正如另一个答案和评论所建议的那样,还有其他方法可以达到这个结果这个答案是基于你的代码输入。
另外,请注意,forma*10^n或更一般的… + 0*10^0的数字可能会导致一些“令人惊讶的”回文,至少在op中是如何定义它们的。

关于c - 计算两个回文数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38394702/

10-12 07:36
查看更多