#include <cstdio> #include <iostream> #include <algorithm> using namespace std; int nawias; string s; void rob(int k){ if(k==0){ s.erase(s.end()-4, s.end()); for(int i=1;i<nawias; i++) s+=")"; return; } if(k%3==0){ s+="(1+1+1)*"; rob(k/3); } else if(k%2==0){ s+="(1+1)*"; rob(k/2); } else{ s+="(1+"; nawias++; rob(k-1); } } int main(){ ios_base::sync_with_stdio(0); int t, k; cin>>t; while(t--){ cin>>k; nawias=0; s.clear(); if(k==1){ cout<<"1\n"; continue; } rob(k); cout<<s<<"\n"; } return 0; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | #include <cstdio> #include <iostream> #include <algorithm> using namespace std; int nawias; string s; void rob(int k){ if(k==0){ s.erase(s.end()-4, s.end()); for(int i=1;i<nawias; i++) s+=")"; return; } if(k%3==0){ s+="(1+1+1)*"; rob(k/3); } else if(k%2==0){ s+="(1+1)*"; rob(k/2); } else{ s+="(1+"; nawias++; rob(k-1); } } int main(){ ios_base::sync_with_stdio(0); int t, k; cin>>t; while(t--){ cin>>k; nawias=0; s.clear(); if(k==1){ cout<<"1\n"; continue; } rob(k); cout<<s<<"\n"; } return 0; } |