以下のプログラムは、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) が true であることを確認します。問題は、 res 変数に格納されている最後の値を出力する方法です。