hdu 2031 进制转换

进制转换

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 47086    Accepted Submission(s): 25818


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<stdio.h>
#include<math.h>
#include<string>
#include<string.h>
#include<algorithm>
using namespace std;
void jinzhi(int a1 ,int r)
{
	int k=0,i=0,temp,n;
	int a[10001];
	n=abs(a1);
	while(n)
	{
	   a[k++]=n%r;
	   n=n/r;	
	}
	if(a1<0) cout<<'-';
	for(i=k-1;i>=0;i--)
	{
		if(a[i]<=9)
		cout<<a[i];
		if(a[i]==10)
		cout<<"A";
		if(a[i]==11)
		cout<<"B";
		if(a[i]==12)
		cout<<"C";
		if(a[i]==13)
		cout<<"D";
		if(a[i]==14)
		cout<<"E";
		if(a[i]==15)
		cout<<"F";	
	}
	cout<<endl;
}
int main()
{
  int n,r;
  while(cin>>n>>r)
  {
  	jinzhi(n,r);
  }
  return 0;
}


 

posted @ 2017-02-18 15:03  X_na  阅读(191)  评论(0)    收藏  举报