Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
改了一下,还能更短吗?In Reply To:好吧呀,是洞。过了,附代妈。 Posted by:KatrineYang at 2016-07-11 10:47:42 #include <iostream> #include <string> using namespace std; int N(int c){ if(c>='0'&&c<='9') return c-'0'; return c-'A'+10; } int C(int i){ if(i<10) return i+'0'; return i-10+'A'; } void p(string &s){ int A=0,B=0,P=0; while(s[P]!='8'){ int c=N(s[P]); int a=N(s[P+1])*16+N(s[P+2]); switch(c){ case 0:{ A=N(s[a]); P+=3; break;} case 1:{ s[a]=C(A); P+=3; break;} case 2:{ int t=A; A=B; B=t; P++; break;} case 3:{ int r=A+B; A=r%16; B=r/16; P++; break;} case 4:{ A=(A+1)%16; P++; break;} case 5:{ A=(A+15)%16; P++; break;} case 6:{ if(!A)P=a; else P+=3; break;} case 7:{ P=a; break;} } } } int main() { while(1){ string s; cin>>s; if(s[0]=='8') return 0; p(s); cout<<s<<endl; } return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator