建议以2的次幂去分析题目,只有三种情况,0次幂输出2(0),1次幂输出2,剩下输出2(,然后递归,回来后再输出),最后判断是否输出+
by daydayup12 @ 2023-11-15 21:21:10
我只是想说,用递归真简单
- 上代码
```cpp
#include<bits/stdc++.h>
using namespace std;
int n;
string f(int n){
if(n==1)return "2(0)";
if(n==2)return "2";
if(n==3)return "2+2(0)";
int x=log2(n),i=pow(2,x);
string s="2("+f(x)+")";
if(n-i>0)s=s+"+"+f(n-i);
return s;
}
int main() {
cin>>n;
cout<<f(n);
return 0;
}
```
by yyyyyyyyu @ 2023-11-24 20:42:11