您的位置:首页 > 其它

普及练习场 简单的模拟 进制转换

2017-12-10 20:07 267 查看
题目链接

题意理解

这题的难点大概在于想到用短除法,且余数为正数

设x/y=a⋯b ,则有x=ay+b 。当b<0 时,由于题目中y<0 ,因此可以调整成x=(a+1)y+(b−y)

代码

import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String symbolTable = "0123456789ABCDEFGHIJKLMN";
int x = scanner.nextInt();
int y = scanner.nextInt();
String res = "";
int temp = x;
while(x != 0) {
int t = x % y;
if(t >= 0) {
x = x / y;
} else {
t -= y;
x = x / y + 1;
}
res = symbolTable.charAt(t) + res;
}
System.out.println(temp + "=" + res + "(base" + y + ")");
scanner.close();
}
}


欢迎加入“不会算法一群菜鸟”,群号是⑥⑥①⑨②2025,这是我设置的一道很低的门槛用来阻止广告的。入群的验证暗号是:我爱编译原理
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: