概述
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所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复