我是靠谱客的博主 彩色高跟鞋,最近开发中收集的这篇文章主要介绍【hihoCoder 1410】Powers of Two,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Powers of Two

思路

利用递归,返回每次最小的个数。

代码

#include <iostream>
using namespace std;

int f(int n){
    int sum = 1;
    while(n > sum){//寻找恰比n大的2^k的数
        sum *= 2;
    }
    if(sum == n)//若相等,则可以直接用2^k表示
        return 1;
    int t1 = f(n - sum/2);//加上下一个数
    int t2 = f(sum - n);//减去下一个数
    if(t1 > t2)
        return t2 + 1;  
    return t1 + 1;  
}

int main(){
    int n ;
    cin >> n;
    cout << f(n) << endl;
}

最后

以上就是彩色高跟鞋为你收集整理的【hihoCoder 1410】Powers of Two的全部内容,希望文章能够帮你解决【hihoCoder 1410】Powers of Two所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(67)

评论列表共有 0 条评论

立即
投稿
返回
顶部