Project Euler 206
二乗すると「1_2_3_4_5_6_7_8_9_0」の形となるような唯一の正整数を求めよ。ただし、「_」は1桁の数である。
こんなコードを書いてしまってすいません。
1と2の間が9だってのが悪質です。
#include <iostream> #include <deque> using namespace std; // xを各桁ごとにばらしてdequeに挿入する。 deque<int> integerDigits(long long x){ deque<int> arr; while(x!=0){ arr.push_front(x%10); x/=10; } return arr; } int main(){ deque<int> n; bool f; long long i = 150000000LL; for( ; i<150000000LL ; i++){ //if(i%1000000==0) cout << i << " " << i*i << endl; f = true; n = integerDigits(i*i); for(int j=8 ; j>=0 ; j--){ if(n[j*2] != j+1){ f = false; break; } } if(f){ cout << i << "0 " << i*i << "00" << endl; break; } } }