題意:給定一個n表示1到n的序列,讓你用最小的步數把這個序列都變為0,每個操作可以從序列中選擇一個或多個個,同時減掉一個正整數,求最少的步數。
#include <iostream>
#include <cstdio>
using namespace std;
int f(int n){ return 1 == n ? 1 : f(n/2) + 1; }
int main(){
int n;
while(~scanf("%d", &n)){
int ans = f(n);
cout << ans << endl;
}
return 0;
}