じゃぁ、問1をやってみた。
unsigned int f(unsigned int x) { x = x - 1; x = x | (x >> 1); x = x | (x >> 2); x = x | (x >> 4); x = x | (x >> 8); x = x | (x >>16); return x + 1; } int main(int argc, const char * argv[]) { int check = 1; int cnt=0; if(0!=f(0)){ cnt++; } for(unsigned int i=1;i!=0;i++){ if(check < i){ check <<=1; } if(check != f(i)){ cnt++; } if(i%0x10000==0){ printf("%x\n",i); } } printf("cnt=%d\n",cnt); return 0; }
iよりも等しいか大きい最小の2の乗数
http://okajima.air-nifty.com/b/2011/01/2011-ffac.html ぷよぷよを解く問題をやってみた かかった時間はおおよそ1時間半 途中でわからないところがあったのでくぐってしまった using System;using System.C...
じゃぁ、問1をやってみた。 unsigned int f(unsigned int x) { x = x - 1; x = x | (x >> 1); x = x | (x >> 2); x = x | (x >> 4); x = x | (x >> 8); x = x | (x >>16); return x + 1;}int main(int argc, _TC...