下面的程序是在 2 位数字的乘积中查找回文数(轨迹最多为 10*11)。
#include<iostream>
using namespace std;
int res1=0
void palindrome(int mul)
{
int k,res=0,count=0;
int p=mul;
while(mul!=0)
{
k=mul%10;
res=(res*10)+k;
mul=mul/10;
}
if(res==p)
cout<<res<<"is a palindrome:\n"
{
if(res1<res)
res1=res;
}
}
int main()
{
int mul,j;
for(int i=1;i<11;i++)
{
for(j=1;j<12;j++)
{
mul=i*j;
if(mul>10)
palindrome(mul);
}
cout<<"\n";
}
return 0;
}
上面的代码适用于我需要的所有东西,除了最大的回文。
我的算法就像
- 取每种组合的乘积
- 如果乘法 res > 10,则使用函数检查结果是否为回文并打印回文。
- 通过与前一个数字比较来检查最大的数字。
所以我将之前的值存储在 res1 变量中,我正在比较 res 和 res1 变量。
根据我的逻辑,它最后检查 (88<99) 是否属实。现在的问题是如何打印存储在 res 变量中的最后一个值?