工学1号馆

home

« | 返回首页 | »

Project Euler 4–Maximum path sum I

By Wu Yudong on January 15, 2017

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

No comments yet.
To verify that you are human, please fill in "七"(required)