1298. 数制转换

来源:互联网 发布:室内设计软件3dmax 编辑:程序博客网 时间:2024/06/05 00:48
 
#include<iostream>#include<string>#include<cstdio>using namespace std;void change(long n){string str;int tmp=0;int num;while( n/3!=0 ){num=n%3+tmp;if( num==2 ){tmp=1;str='-'+str;}if( num==3 ){tmp=1;str='0'+str;}if( num==0||num==1 ){tmp=0;str=(char)(num+'0')+str;}n/=3;}num=n%3+tmp;if( num==2 ){str="1-"+str;}if( num==3 ){tmp=1;str="10"+str;}if( num==0||num==1 ){tmp=0;str=(char)(num+'0')+str;}cout<<str<<endl;}void nchange(long n){n=-n;string str;int tmp=0;int num;while( n/3!=0 ){num=-(n%3)+tmp;if( num==-2 ){tmp=-1;str='1'+str;}if( num==-3 ){tmp=-1;str='0'+str;}if( num==0 ){tmp=0;str='0'+str;}if( num==-1 ){tmp=0;str='-'+str;}n/=3;}num=-(n%3)+tmp;if( num==-2 ){tmp=-1;str="-1"+str;}if( num==-3 ){tmp=-1;str="-0"+str;}if( num==0 ){tmp=0;str='0'+str;}if( num==-1 ){tmp=0;str='-'+str;}cout<<str<<endl;}int main(){long n;while( cin>>n ){if( n>=0 ){change(n);}if( n<0 ){nchange(n);}}return 0;}

原创粉丝点击