P1010 幂次方
https://www.luogu.org/problemnew/show/P1010
主要是用递归的方法 一开始我还在想怎么输出左右括号 其实只需要在递归之前输出左括号 递归之后输出右边括号就行了
上代码:
#include<bits/stdc++.h> using namespace std; void mi(int n) { int y,i,f=1; if(n==0) return; for(i=0;i<=16;i++) if(pow(2,i)>n) { y=--i; break; } if(y==0) cout<<"2(0)"; else if(y==1) cout<<"2"; else if(y>1) { cout<<"2("; mi(y); cout<<")"; } if(n!=pow(2,y)) { cout<<"+"; mi(n-pow(2,y)); } } int main() { int n; cin>>n; mi(n); }