题目
进制转换
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 94050 Accepted Submission(s): 50813
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<iostream>
#include<string>
using namespace std;
int main()
{
int N,M;
while(cin>>N>>M)
{
string num;
int n=N,s;
while(n)
{
char ch;
s=n%M;
if(s<0)
s=-s;
if(s>=0&&s<=9)
ch=s+'0';
else
ch='A'+s-10;
num.insert(0,1,ch);
n=n/M;
}
if(N<0)
num.insert(0,"-");
cout<<num<<endl;
}
}
#include<string>
using namespace std;
int main()
{
int N,M;
while(cin>>N>>M)
{
string num;
int n=N,s;
while(n)
{
char ch;
s=n%M;
if(s<0)
s=-s;
if(s>=0&&s<=9)
ch=s+'0';
else
ch='A'+s-10;
num.insert(0,1,ch);
n=n/M;
}
if(N<0)
num.insert(0,"-");
cout<<num<<endl;
}
}
虽然这个题是比较简单的,但是自己在insert函数的使用上出了很多问题,之后看了别人的博客后才明白怎么使用,所以记录一下。
https://blog.csdn.net/qq_40968179/article/details/104381649
借鉴文章链接