标签:pos names nal end ++ cout bsp ica ros
Every positive number can be presented by the exponential form.For example, 137 = 2^7 + 2^3 + 2^0。
Let‘s present a^b by the form a(b).Then 137 is presented by 2(7)+2(3)+2(0). Since 7 = 2^2 + 2 + 2^0 and 3 = 2 + 2^0 , 137 is finally presented by 2(2(2)+2 +2(0))+2(2+2(0))+2(0).
Given a positive number n,your task is to present n with the exponential form which only contains the digits 0 and 2.
For each case, the input file contains a positive integer n (n<=20000).
For each case, you should output the exponential form of n an a single line.Note that,there should not be any additional white spaces in the line.
1315
2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0)
#include<iostream> using namespace std; int a[100]={0}; int binary(int n){ int size=0; do{ a[size++]=n%2; n/=2; }while(n!=0); return size; } int main(){ int n,size; while(cin>>n){ int first=1; size=binary(n); if(a[14]==1) { if(first==1){ first=0; cout<<"2(2(2+2(0))+2(2)+2)"; } else cout<<"+2(2(2+2(0))+2(2)+2)"; } if(a[13]==1) { if(first==1){ first=0; cout<<"2(2(2+2(0))+2(2)+2(0))"; } else cout<<"+2(2(2+2(0))+2(2)+2(0))"; } if(a[12]==1) { if(first==1){ first=0; cout<<"2(2(2+2(0))+2(2))"; } else cout<<"+2(2(2+2(0))+2(2))"; } if(a[11]==1) { if(first==1){ first=0; cout<<"2(2(2+2(0))+2+2(0))"; } else cout<<"+2(2(2+2(0))+2+2(0))"; } if(a[10]==1) { if(first==1){ first=0; cout<<"2(2(2+2(0))+2)"; } else cout<<"+2(2(2+2(0))+2)"; } if(a[9]==1) { if(first==1){ first=0; cout<<"2(2(2+2(0))+2(0))"; } else cout<<"+2(2(2+2(0))+2(0))"; } if(a[8]==1) { if(first==1){ first=0; cout<<"2(2(2+2(0)))"; } else cout<<"+2(2(2+2(0)))"; } if(a[7]==1) { if(first==1){ first=0; cout<<"2(2(2)+2+2(0))"; } else cout<<"+2(2(2)+2+2(0))"; } if(a[6]==1) { if(first==1){ first=0; cout<<"2(2(2)+2)"; } else cout<<"+2(2(2)+2)"; } if(a[5]==1) { if(first==1){ first=0; cout<<"2(2(2)+2(0))"; } else cout<<"+2(2(2)+2(0))"; } if(a[4]==1) { if(first==1){ first=0; cout<<"2(2(2))"; } else cout<<"+2(2(2))"; } if(a[3]==1) { if(first==1){ first=0; cout<<"2(2+2(0))"; } else cout<<"+2(2+2(0))"; } if(a[2]==1) { if(first==1){ first=0; cout<<"2(2)"; } else cout<<"+2(2)"; } if(a[1]==1) { if(first==1){ first=0; cout<<"2"; } else cout<<"+2"; } if(a[0]==1) { if(first==1){ first=0; cout<<"2(0)"; } else cout<<"+2(0)"; } cout<<endl; } return 0; }
标签:pos names nal end ++ cout bsp ica ros
原文地址:https://www.cnblogs.com/bernieloveslife/p/9736477.html