进制转换 输入一个十进制数N,将它转换成R进制数输出。(Java c++)

完犊子我不知道这个题的题号是什么,来着一个非要在没到截止时间就写博客的人的怨念

输入一个十进制数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

import java.util.Scanner;
public class Main {
	
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		while(in.hasNext()) {
			int n = in.nextInt();
			int x = in.nextInt();
			System.out.println(Integer.toString(n, x).toUpperCase());
		}
		
	}
}

Java是真的一点点就出来了,但是……貌似这题c++也没多难?

#include
#include
#define MAX 100100
using namespace std;
typedef long long ll;
char a[MAX];
char str[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
int main()
{
	int n,x,k,flag,i,j;
	while(scanf("%d%d",&n,&x)!=EOF){
		flag=0;
		if(n<0){
			flag=1;
			n=-n;
		}
		i=0;
		while(n){
			k=n%x;
			a[i]=str[k];
			n/=x;
			i++;
		}
		if(flag){
			printf("-");
		}
		for(j=i-1;j>=0;j--){
			printf("%c",a[j]);
		}
		printf("\n");
	}
	return 0;
}


你可能感兴趣的:(进制转换 输入一个十进制数N,将它转换成R进制数输出。(Java c++))