#include <iostream> #include <string> using namespace std; bool esPalindrome(string cad) { int i,j; i = 0; j = cad.size()-1; while(i<j) if(cad[i++]!=cad[j--]) return false; return true; } string abase2(int n) { string sol = ""; while(n>0) sol = (char)((n&1)+'0')+sol , n >>= 1; return sol; } string aString(int n) { string sol = ""; while(n>0) { int d = n%10; sol = (char)(d+'0')+sol; n /= 10; } return sol; } int main() { //872187 int suma = 0 ; const int n = 1000000; for(int i = 1; i < n; i+=2) if(esPalindrome(aString(i)) && esPalindrome(abase2(i))) suma += i; cout << suma << endl; return 0; }
martes, 10 de abril de 2012
Project Euler 36
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario