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.
找出最大的有由个三位数乘积构成的回文数。
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<ctype.h>
#include<stdlib.h>
#include<stdbool.h>
bool palindromic(int n) //判断一个整数是否为回文数
{
char s[10];
sprintf(s, "%d", n); //将整数n保存在字符数组s中
int i, len;
len = strlen(s);
for (i = 0; i < len / 2; i++) {
if (s[i] != s[len - i - 1])
return false;
}
return true;
}
bool have_the_factor(int n) //判断是否含有两个3位数的因数
{
int s = 999;
int r, b;
while (s > 100) {
if ((n % s) == 0 && ((n / s) > 100 && (n / s) < 1000))
return true;
s--;
}
return false;
}
int main()
{
int i = 1000000;
while (i > 0) {
if (palindromic(i) && have_the_factor(i)) {
printf("%d\n", i);
break;
}
i--;
}
return 0;
}
Answer:906609
Completed on Wed, 24 Jul 2013, 04:34
Comments