题目:
标准输入输出
题目描述:
数制转换。(要求采用栈实现,练习进栈入栈函数的编写)
输入:
输入的第一行包含两个数,n,d
n表示要转换的数的个数
d表示要转换成的进制数
接下来是n个十进制数输出:
对每一测试用例,用一行输出数制转换后的结果
输入样例:
2 8
123
213
输出样例:
173
325
代码:
方法一:
import java.util.*;
public class Xingyuxingxi{
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int a=sc.nextInt(),b=sc.nextInt();
while(a--!=0) {
int c = sc.nextInt(),sum=0,k=1;//k=1表示从个位开始
while(c!=0) {
int x=c%b;//为当前进制下当前位的数
c=c/b;//结果为进几位,向前进c位数
sum+=x*k;//对应位数的数相加
k*=10;//每次*10表示下一位
}
System.out.println(sum);
}
}
}
/*
假如求25的8进制数
25%8=2
25/8=3
则
转化为八进制后
个位应该为2
3%8=3
3/8=0
十位对应3
sum+=2*1+3*10
sum=32对应25的八进制数
*/
方法二:
import java.util.*;
public class Xingyuxingxi {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
while (a--!=0) {
int c = sc.nextInt();
System.out.println(Integer.toString(c, b));//将c转化为b进制数,结果为字符串
}
}
}