进制转换(十->任意) 水深无声 2022-03-08 09:19 209阅读 0赞 进制转换 Problem Description 输入一个十进制数N,将它转换成R进制数输出。 Input 输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=16, R<>10)。 Output 为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,等等)。 Sample Input 7 2 23 12 \-4 3 Sample Output 111 1B \-11 #include<cstdio> #include<cmath> #include<algorithm> #include <iostream> using namespace std; char arr[1001]; int n,r,len; void tranform(void) { int i=0,temp; if(n>0) temp=n; else temp=-n; while(temp) { arr[i]=temp%r+'0'; if(arr[i]>'9')//判断是数字还是字符 arr[i]=arr[i]-'0'+55; temp/=r; i++; } len=i; } int main() { int i; while(cin>>n>>r) { len=0; tranform(); if(n<0) cout<<"-"; for(i=len-1;i>=0;--i) cout<<arr[i]; cout<<endl; } return 0; }
还没有评论,来说两句吧...