进制转化 Time Limit:1s Memory limit:32M Accepted Submit:18 Total Submit:26 输入十进制数n(0<=n<=10000),请输出它对应的k(2<=k<=36)进制数。 10,11…分别用A, B … 代替。 输入数据 本题有多组输入数据,你必须处理到EOF为止. 每组数据占一行,有2个整数n,k 输出数据 输出n对应的k进制数,一个数一行。 输入样例3 2 4 3 15 16 输出样例11 11 F Original: FOJ月赛-2007年3月 #include<iostream>using namespace std; void ten_to_r(int n,int r,char a[]){ int i,temp=1; char c; if(n==0){a[0]='0';a[1]='\0';} else{ for(i=0;n!=0;i++) { temp=n%r; n/=r; c=char(temp); if(temp>=10)c+=55; else c+=48; a[i]=c; } a[i]='\0'; }} int main(){ int n,r,i; char a[100000]; while(scanf("%d%d",&n,&r)!=EOF) { ten_to_r(n,r,a); for(i=strlen(a)-1;i>=0;i--) cout<<a[i]; cout<<endl; } return 0;}

评论