るくすの日記 ~ Out_Of_Range ~

主にプログラミング関係

AOJ 0233 Book Arrangement

問題文→AIZU ONLINE JUDGE


10進数を-10進数に直す問題。




x mod (-10)^nをやっていく (負になった時は正にしてやる)

string Trans(int n){
  string ans="";
  while(n != 0){
    int mod=n%(-10);
    int nxt=n/(-10);
    if(mod < 0){
      mod+=10;
      nxt++;
    }
    char c='0'+mod; string tmp(1,c);
    ans+=tmp;
    n=nxt;
  }
  reverse(all(ans));
  return ans;
}
int main(){
  int n;
  while(cin>>n,n){
    cout<<Trans(n)<<endl;
  }
}