【题目】
A palindromic number reads the same both ways. The largest palindrome made from the product of two 2-digit numbers is 9009 = 91 × 99.
Find the largest palindrome made from the product of two 3-digit numbers.
【翻译】一个回文数指的是从左向右和从右向左读都一样的数字。最大的由两个两位数乘积构成的回文数是9009 = 91 * 99.
找出最大的有由两个三位数乘积构成的回文数。
【思路】计算回文数,最简单的就是 逆序后组成的数和原数相等,则该数为回文数。【代码】
bool isPalindromic(int s)
{
int temp=s;
int t=0;
while(temp)
{
t=t*10+temp%10;
temp/=10;
}
return (s==t);
}
void test4()
{
int result=0;
for(int i=100;i<1000;i++)
{
for(int j=100;j<1000;j++)
{
int s=i*j;
if(isPalindromic(s))
{
if(s>result)
result=s;
}
}
}
cout<<result<<endl;
}
【思路二】反转一个数字,当然也可以使用字符串,以下使用字符串完成该功能。
void test4()
{
int x;
int y;
int z;
int max = 0;
char a[7];
char b[7];
for(x = 999 ; x > 99 ; x--)
{
for(y = 999 ; y > 99 ; y--)
{
z = x * y;
sprintf(a, "%d", z);
strcpy(b, a);
_strrev(b);
if(strcmp(a, b) == 0)
{
if(z > max)
{
max = z;
}
}
}
}
printf("Answer = %d\n", max);
}
【答案】运行程序后,结果为906609 。