Suneast & Yayamao(2062)

来源:互联网 发布:nba哪只球队好看 知乎 编辑:程序博客网 时间:2024/06/11 00:18

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

125

Sample Output

123

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) ….


*参考思路:用二进制的位数表示。

#include <stdio.h> #include <string.h>  #include <math.h>  #include <stdlib.h>  #include <ctype.h>  int main()  {double i,n;while(scanf("%lf",&n)!=EOF){for(i=0;;i++){if(n<pow(2,i)){printf("%.0lf",i);break;}}printf("\n");}          return 0;  }


0 0
原创粉丝点击