您的位置:首页 > 其它

百练+递归模拟题+二进制思想 理解好递归每一层做什么

2017-09-14 19:46 274 查看
点击打开链接
#include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<string.h>
#include<cstring>
#include<string>
#include<algorithm>
#include<math.h>
#include<queue>
#include<set>
#include<stack>
#include<map>
#define LL long long
#define inf 0x3f3f3f3f
using namespace std;
void solv(int num, int n)///n为几次方
{
if(num==0) return;
int r=num%2;
num=num/2;
solv(num, n+1);
if(num&&r) printf("+");///只有两个数都是非0时候才会 +
if(r){///当前最后一位
if(n==1) printf("2");
else{///次方有可能是0或者还未分解完
printf("2(");
if(n==0) printf("0");
else solv(n,0);
printf(")");
}
}
}
int main(){
int num;
scanf("%d",&num);
solv(num,0);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: