递归算法求解释。详细的谢谢~
任何一个正整数都可以用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 编辑 ]