救命!!!

P1010 [NOIP1998 普及组] 幂次方

建议以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


|