完犊子我不知道这个题的题号是什么,来着一个非要在没到截止时间就写博客的人的怨念
输入一个十进制数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<iostream>
#include<cmath>
#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;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)