Problem 4

来源:互联网 发布:网络教学工具 编辑:程序博客网 时间:2024/05/06 19:07

Problem

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.

Code
#include <iostream>using namespace std;int xx(int x){    int result = 1;    for (int i = 1; i <= x; i++)    {        result *= 10;    }    return result;}int countPlace(int num){    for (int i = 7; i != 0; i--)    {        int place = xx(i);        if (num/xx(i) >= 1)        {            return i + 1;        }    }}bool isPalindromicNumber(int num){    int count = countPlace(num);    int midnum = count/2;    if (count%2 == 0)    {        for (int i = 0; i != midnum; i++)        {            int a = num/xx(midnum+i)%10;            int b = num/xx(midnum-i-1)%10;            if (a != b)            {                return false;            }        }    }    else    {        for (int i = 1; i <= midnum; i++)        {            int a = num/xx(midnum+i)%10;            int b = num/xx(midnum-i)%10;            if (a != b)            {                return false;            }        }    }    return true;}int main(){    int max = 0;    int x;    int y;    for (int i = 999; i != 99; i--)    {        for (int j = 999; j != 99; j--)        {            if (isPalindromicNumber(i*j))            {                int result = i * j;                if (result > max)                {                    max =  result;                    x = i;                    y = j;                }            }        }    }    cout << max << endl;    cout << "x:" << x << ",y:" << y << endl;}


原创粉丝点击