输入一个十进制数 N,将它转换成 R 进制数输出。
Input
输入一个正整数 T。表示测试数据的组数。
每个测试实例包含两个整数 N(32 位整数) 和 R (2<=R<=36).
Output
为每个测试实例输出转换后的数,每个输出占一行。如果 R 大于 10,则对应的数字规则参考 16 进制(比如,10 用 A 表示 ,16 用 G 表示等等)。
#include<iostream> using namespace std; long int n,r; char a[36]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'}; int work(long int n) { if(n<r) { cout<<a[n]; return n; } else { work((n-n%r)/r); cout<<a[n%r]; } } void work2(long int n) { int z[100], num=0; do { z[num++] = n % r; n = n / r; } while (n != 0); for (int i= num - 1; i>=0; i--){ cout << a[z[i]]; } } int main() { long int t,i,j; bool check=0; cin>>t; for(i=0;i<t;i++) { check=0; cin>>n>>r; j=0; if(n<0) { check=1; n=-n; cout<<'-'; } work2(n); cout<<endl; } }