首先说下什么是回文数,就是从左往右看和从右往左看是同一个数,例如1221,4554这些都是回文数,而1234这就不是。
再解释下什么叫能分解成两个两位数相乘,例如9999肯定是最大的四位回文数,但是很明显不能分解成两个两位数相乘的形式,所以不符合要求,像9009,他是回文数,而且9009=91*99,所以符合要求。
下面是代码
#include"iostream"
using namespace std;
bool JudgePalindrome(int n){
int key=n;
if(n<1000|n>10000)
return false;
int sum=0;
while(n!=0){ //如果n反过来组成的数还等于n即是回文数
sum=n%10+sum*10;
n=n/10;
}
if(sum==key)
return true;
return false;
}
int main(){
int i,j,p=0;
for(i=10;i<100;i++)
for(j=10;j<100;j++)
if(i*j>p&&JudgePalindrome(i*j))
p=i*j;
cout<<p<<endl;
return 0;
}