Problem 2062 Suneast & Yayamao
Accept: 143 Submit: 313
Time Limit: 1000 mSec Memory Limit : 32768 KB
Problem Description
Yayamao is so cute that people loves it so much.
Everyone wants to buy Yayamao from Suneast (a business man who sells Yayamao).
Suneast is a strange business man. He sells Yayamao in a random price from 1, 2, 3, 4, 5…, n.
Suneast is also a lazy business man. He never looks for a change. But people can’t but Yayamao with a lower price, that say people must pay exact money for Yayamao.
Now, we want to know how many pieces of money people should bring with to buy a Yayamao with the exactly price.
Input
There are multiple test cases. Each test case has an integer n(1<=n<=2147483647) in a single line.
Output
For each case, output a single integer in a line indicate the number of pieces of money people should bring with to buy a Yayamao whose price is random from 1 to n.
Sample Input
1 2 5
Sample Output
1 2 3
Hint
In test case 1: people can bring 1 piece of money: 1
In test case 2: people can bring 2 pieces of money: (1, 1) or (1, 2)
In test case 3: people can bring 3 pieces of money: (1, 1, 3) or (1, 2, 2) ….
1 #include <iostream> 2 #include <stdio.h> 3 #include <string.h> 4 using namespace std; 5 int main() 6 { 7 int n,sum; 8 while(cin>>n) 9 { 10 sum=0; 11 while(n) 12 { 13 n>>=1; 14 sum++; 15 } 16 cout<<sum<<endl; 17 } 18 }