天天看點

UVa 11384 Help is needed for Dexter (遞歸)

題意:給定一個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;
}