题目链接:https://cn.vjudge.net/problem/UVA-11384
题意:每次可以从序列中选择一个或多个数,同时减去一个相同的正整数,最少几次可以把1~n全部减为零。
白书思路:每次最好的方法就是折半。
#include<stdio.h>
#include<iostream>
#include<string.h>
#include<math.h>
using namespace std;
int f(int x)
{
if(x==1)
return 1;
return f(x/2)+1;
}
int main()
{
int n;
while(~scanf("%d",&n))
{
printf("%d\n",f(n));
}
}