注册 登录
编程论坛 C++教室

递归算法求解释。详细的谢谢~

风雨123 发布于 2013-08-04 16:13, 471 次点击
任何一个正整数都可以用2的幂次方表示。
例如;137= 2^7+2^3+2^0.  -->2(7)+2(3)+2(0) ---->2(2(2)+2+2(0))+2(2+2(0))+2(0).
输入:正整数n  输出:符合n的 0,2表示
程序代码:
#include <iostream>
using namespace std;
stry(int n,int r)
{
  if(n==1)
cout<<"2("<<r<<")";
else
{
  stry(n/2,r+1);
if(n%2==1)
cout<<"+2("<<r<<")";
}
}
int main()
{
  int n;
cin>>n;
if(n>=1)
  stry(n,0);
else
cout<<"error"<<endl;
}



[ 本帖最后由 风雨123 于 2013-8-4 16:21 编辑 ]
1 回复
#2
peach54602013-08-04 18:43
这就是十进制转二进制,只是用递归替代循环,一种花哨不实用的编程技巧而已
1