博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
进制转换 (java)
阅读量:741 次
发布时间:2019-03-21

本文共 1533 字,大约阅读时间需要 5 分钟。

进制转换

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

题目分析

进制转换的原理就是取余,从大到小依次输出余数就可以了

提一嘴java的输入输出是真的麻烦

代码实现

import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.io.PrintWriter;import java.io.StreamTokenizer;public class Main {
public static void zhihuan(int a, int b) {
StreamTokenizer in = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in))); PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out)); int yushu; if (a == 0) return; else {
zhihuan(a / b, b); yushu = a % b; if (yushu < 10) {
out.print(yushu); out.flush(); } else {
char s = (char) ('A' + yushu - 10);//转换为字符 out.print(s); out.flush(); } } } public static void main(String[] args) throws IOException {
StreamTokenizer in = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in))); PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out)); while (in.nextToken() != StreamTokenizer.TT_EOF) {
//判断是否输入完成 int n = (int) in.nval;//读取上一个数据 in.nextToken(); int r = (int) in.nval; if (n > 0) {
zhihuan(n, r); } else if (n < 0) {
n = -n; out.print("-"); out.flush(); zhihuan(n, r); } else {
out.print("0"); } out.println(); out.flush();//换行也要加这个 } }}

案例演示

在这里插入图片描述

转载地址:http://jxagz.baihongyu.com/

你可能感兴趣的文章