杭电oj2031:进制转换(水题)

进制转换

题目链接

Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)

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

水题,直接撸代码,一遍AC。

#include<iostream>
using namespace std;

char R[16] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};

int main()
{
	int n, r;
	while(cin>>n>>r)
	{
		if(n < 0)
		{
			cout<<"-";
			n = 0 - n;
		}
		int num = 0;
		int arr[32] = {0};
		do{
			arr[num++] = n % r;
			n /= r;
		}while(n != 0);
		for(int i=num-1;i>=0;i--)
			cout<<R[arr[i]];
		cout<<endl;
	}
	return 0;
}
发布了52 篇原创文章 · 获赞 36 · 访问量 4504

猜你喜欢

转载自blog.csdn.net/qq_38861587/article/details/104467927