给定正整数n, 你的任务是用最少的操作把序列1,2,3,4·····n中的所有数变成0。每次操作可以从序列中选择一个或多个整数,同时减去一个相同的正整数,比如:1,2,3可以把2,3同时减小2,得到1,0,1;

输入 :n<10e9, 输入多组数据

#include <iostream>

using namespace std;

int fac(int n)
{
    return n==1?1:fac(n/2)+1;
}

int main()
{
    int n;
    while (cin >>n)
    {
        cout <<fac(n)<<endl;

    }
    return 0;
}

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐