Project Euler——Problem 4 - Daybreakcx's Blog - Keep Programming! With Algorithm! With Fun!
Project Euler——Problem 3
Project Euler——Problem 5

Project Euler——Problem 4

daybreakcx posted @ 2009年7月14日 01:36 in Prject Euler , 667 阅读

原题与答案:

Problem 4

16 November 2001

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.

Answer:906609

 

分析与解答:

这个题目也是很简单的,题目求两个三位数,使得他们的乘积是回文数,要求返回最大的满足条件的回文数,这里只需要枚举每对三位数,并且对他们的乘积进行判定输出最大值即可,编码没有什么难度,以下是实现代码:

 

  1. #include<stdio.h>
  2. int num[10],ans,i,j,s;
  3. bool ispalindrome(int s)
  4. {
  5.         int i,j;
  6.         num[0]=0;
  7.         while (s)
  8.         {
  9.                 num[++num[0]]=s%10;
  10.                 s/=10;
  11.         }
  12.         for (i=1,j=num[0];i<j;i++,j--)
  13.                 if (num[i]!=num[j]) return false;
  14.         return true;
  15. }
  16. int main()
  17. {
  18.         ans=0;
  19.         for (i=100;i<=999;i++)
  20.                 for (j=i;j<=999;j++)
  21.                 {
  22.                         s=i*j;
  23.                         if (s>ans&&ispalindrome(s)) ans=s;
  24.                 }
  25.         printf("%d\n",ans);
  26.         return 0;
  27. }

 

 


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter