Source Code ¶
#include <stdio.h> int bincount(int X); int main() { int N,n,k=0; while(1){ scanf("%d",&N); if(N==0) break; k=bincount(N); for(n=N+1;k!=bincount(n);n++){} printf("%d\n",n); } return 0; } int bincount(int X) { int nf,kf=0; for(nf=X;nf>0;nf=nf>>1){ if(nf%2==1) kf++; } return kf; }
Trial and error ¶
- 분명 처음에는 아 뭐 이런거 쯤이야 어렵지 않겠쿤! 하고 문제에 들이댔습니다. .. 그러나 나는 10진수로 보이지만 컴터는 2진수로 알고있겠지!! 라고 생각하고 계산하려해도 당최 쉽지가 않더군요 -- 한참 고민하다 진경이가 힌트를 준 덕분에 해결했습니다. 한번만에 accept! 코드길이는 198B까지 줄였으나, 더 줄일 생각은 아직 별로 들질 않네요-ㅎㅎㅎ