Contest2037 - CSU Monthly 2013 Oct (problem A :Small change)
【题解】:二进制拆分
任意一个整数都可以拆分成 2^0 + 2^1 + 2^2 + 2^3 + ....+ m
【code】:
1 #include <iostream> 2 #include <stdio.h> 3 #include <string.h> 4 #include <math.h> 5 6 using namespace std; 7 8 int main() 9 { 10 int n; 11 while(~scanf("%d",&n)) 12 { 13 int i,sum=0; 14 for(i=0;;i++) 15 { 16 sum+=pow(2,i); 17 if(sum>=n) 18 { 19 break; 20 } 21 } 22 printf("%d\n",i+1); 23 } 24 return 0; 25 }