#include <iostream>
using namespace std;
bool IsPalindromic( int number, int base )
{
int digit[32];
size_t count = 0;
do
{
digit[count++] = number % base;
number /= base;
} while ( number != 0 );
for ( size_t i = 0; i < (count + 1) / 2; ++i )
{
if ( digit[i] != digit[count-1-i] )
{
return false;
}
}
return true;
}
int main()
{
int sum = 0;
for ( int n = 1; n < 1000000; n += 2 )
{
if ( IsPalindromic( n, 10 ) && IsPalindromic( n, 2 ) )
{
sum += n;
}
}
cout << sum << endl;
return 0;
}
http://projecteuler.net/problem=36 [Answer:872187]
最新推荐文章于 2024-08-04 21:55:23 发布
本文介绍了一个C++程序,该程序用于找出1到1000000范围内同时为十进制和二进制回文数的所有奇数,并计算这些数的总和。通过定义一个辅助函数来判断一个给定的数字是否在其指定的进制下为回文数。
5746

被折叠的 条评论
为什么被折叠?



