POJ 1047 Round and Round We Go G++

    xiaoxiao2021-12-14  19

    #include <iostream> using namespace std; string add(string a,string b) { string jg; if(a.size()<b.size()) { string t; t=a; a=b; b=t; } //cout<<a<<" "<<b<<endl; jg=a; int jw=0; for(int i=a.size()-1,j=b.size()-1;i>=0;i--,j--) { if(j>=0) { jg[i]=(char)((jw+a[i]-'0'+b[j]-'0')+'0'); jw=(jw+a[i]-'0'+b[j]-'0')/10; }else { jg[i]=(char)((jw+a[i]-'0')+'0'); jw=(jw+a[i]-'0')/10; } } if(jw!=0) { string t="0"; t[0]=(char)(jw+'0'); //cout<<t[0]<<endl; jg=t+jg; } return jg; } string bmul(string a,int b) { int jw=0; string jg=a; for(int i=a.size()-1;i>=0;i--) { jg[i]=(char)(((a[i]-'0')*b+jw)+'0'); jw=((a[i]-'0')*b+jw)/10; //cout<<jg[i]<<" "<<jw<<endl; } if(jw!=0) { string t="0"; t[0]=(char)(jw+'0'); //cout<<t[0]<<endl; jg=t+jg; } return jg; } string mul(string a,int b) { string g=bmul(a,b); if(b/10!=0) { string s=bmul(a,b/10); s=s+"0"; s[s.size()-1]='0'; //cout<<g<<" "<<s<<endl; string t=add(g,s); if(a.size()+1==t.size()&&t[0]=='0') { t.erase(0,1); } return t; }else { return g; } } bool bj(string a,string b) { if(a.size()!=b.size()) { return false; } for(int i=0;i<a.size();i++) { string x=a.substr(i,a.size())+a.substr(0,i); //cout<<x<<endl; if(x==b) { return true; } } return false; } int main() { //string a; //int b; //cin>>a>>b; //cout<<mul(a,b)<<endl; while(1) { string s; cin>>s; if(cin.eof()==1) { break; } int flag=0; for(int i=1;i<=s.size();i++) { if(bj(s,mul(s,i))==false) { //cout<<i<<"="<<s<<" "<<mul(s,i)<<endl; flag=1; } } if(flag==0) { cout<<s<<" is cyclic"<<endl; }else { cout<<s<<" is not cyclic"<<endl; } } return 0; }

     

    转载请注明原文地址: https://ju.6miu.com/read-970869.html

    最新回复(0)