题目描述
任何一个正整数都可以用2的幂次方表示。例如:137=27+23+2027+23+20,同时约定次方用括号来表示,即abab可表示为a(b)。
由此可知,137可表示为:2(7)+2(3)+2(0),进一步:7=22+2+2022+2+20(2121用2表示),3=2+202+20, 所以最后137可表示为:2(2(2)+2+2(0))+2(2+2(0))+2(0)。
又如:1315=210+28+25+2+1210+28+25+2+1,所以1315最后可表示为:2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0)。
输入输出格式
输入格式:
一行,一个正整数n。(n≤20000)
输出格式:
一行,为符合约定的n的0,2表示。(在表示中不能有空格)
输入输出样例
输入样例一:137输出样例一:
2(2(2)+2+2(0))+2(2+2(0))+2(0)输入样例二:
1315输出样例二:
2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0)
#include<iostream> #include<cmath> using namespace std; int n; void f(int n) { if(n==1) { cout<<"2(0)";return; } int i=0; while(pow(2,i)<=n) { i++; } cout<<"2"; if(i-1!=1) { cout<<"("; f(i-1); cout<<")"; } n-=pow(2,i-1); if(n!=0) { cout<<"+"; f(n); } } int main() { cin>>n; f(n); }
(这题一定要特判2的1次方!!!!!!!!)
标签:表示,1315,20,样例,137,次方 来源: https://www.cnblogs.com/liaoshuangqi/p/10728904.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。