UVA

来源:互联网 发布:威锋认证的淘宝店 编辑:程序博客网 时间:2024/03/29 03:32
题意:

有一个1到n的序列,你一次从这个序列中取出几个数字,把他们减去同一个数,问最少做几次,全部变成0;

/*如果每次我们给后面一般的数减去个n/2则问题就化简成了n/2的问题例如 n=6时 将4,5,6,同时减去个3 则数据就变成了{1,2,3,1,2,3}此问题等价于n=3时的问题这题真的很有启发性 */#include<cstdio>#include<iostream>using namespace std;int fun(int n){return n==1?1:fun(n/2)+1;}int main(){int n;while(~scanf("%d",&n)){printf("%d\n",fun(n));}return 0;} 


1 0