Problem 2062 Suneast & Yayamao 二进制(多重背包的理解基础)

时间:2024-09-29 13:03:02
Problem 2062 Suneast & Yayamao   二进制(多重背包的理解基础)                                      Problem 2062 Suneast & Yayamao

Accept: 143    Submit: 313
Time Limit: 1000 mSec    Memory Limit : 32768 KB

Problem 2062 Suneast & Yayamao   二进制(多重背包的理解基础) 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).

Problem 2062 Suneast & 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.

Problem 2062 Suneast & Yayamao   二进制(多重背包的理解基础) Input

There are multiple test cases. Each test case has an integer n(1<=n<=2147483647) in a single line.

Problem 2062 Suneast & Yayamao   二进制(多重背包的理解基础) 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.

Problem 2062 Suneast & Yayamao   二进制(多重背包的理解基础) Sample Input

1 2 5

Problem 2062 Suneast & Yayamao   二进制(多重背包的理解基础) Sample Output

1 2 3

Problem 2062 Suneast & Yayamao   二进制(多重背包的理解基础) 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 <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
int main()
{
int n,sum;
while(cin>>n)
{
sum=;
while(n)
{
n>>=;
sum++;
}
cout<<sum<<endl;
}
}