Saturday 11 April 2009

POJ 1047



#include <iostream>
#include <string>
#include <deque>
using namespace std;
typedef unsigned int uint;
string mul_ui(string const& a, uint b){
typedef deque<uint>::iterator iterator;
typedef deque<uint>::reverse_iterator riterator;
iterator itr;
riterator ritr;
deque<uint> c(a.begin(),a.end());
for(itr=c.begin();itr!=c.end();++itr){
(*itr)-='0';
(*itr)*=b;
}
int remaineder=0;
for(ritr=c.rbegin();ritr!=c.rend();++ritr){
(*ritr)+=remaineder;
remaineder=(*ritr)/10;
(*ritr)%=10;
(*ritr)+='0';
}
for(;remaineder;remaineder/=10)
c.push_front(remaineder%10+'0');
// for(;c.front()=='0'&&c.size()>1;c.pop_front());
return string(c.begin(),c.end());
}
int main() {
for(string str;cin>>str;
cout<<str<<" is "
<<(string(str.length(),'9')==mul_ui(str,str.length()+1)?"":"not ")
<<"cyclic\n");
return 0;
}

No comments:

Post a Comment