📜个人简介 |
⭐️个人主页:摸鱼の文酱博客主页🙋♂️
🍑博客领域:java编程基础,mysql
🍅写作风格:干货,干货,还是tmd的干货
🌸精选专栏:【Java】【mysql】 【算法刷题笔记】
🎯博主的码云gitee,平常博主写的程序代码都在里面。
🚀支持博主:点赞👍、收藏⭐、留言💬
🍭作者水平很有限,如果发现错误,一定要及时告知作者哦!感谢感谢!
<font color=>📃
🎯1.原题链接
🎯2.题目要求
给定一个十进制数M,以及需要转换的进制数N。将十进制数M转化为N进制数
输入为一行,M(32位整数)
、N(2 ≤ N ≤ 16)
,以空格隔开。
为每个测试实例输出转换后的数,每个输出占一行。如果N大于9,则对应的数字规则参考16进制(比如,10用A表示,等等)
样例输入:7 2
样例输出:111
🎯3.基础框架
java版本的基础框架代码如下:
import java.util.*;
public class Main{
public static void main(String[] args){
}
}
🎯4.解题思路
1.本题思路很简单,首先想清楚原理:N进制数,每个进制位的值分别是X0N0,X1N1, X2*N2…,X0,
2.X1,X2就是这些进制位的值,就是就是进行取模余数就是当前低进制的位的值是多少
3.通过除掉进制数,进入下一个进制位的计算。
🎯5.完整代码
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int m = in.nextInt();
int n = in.nextInt();
boolean flg = false;//代表不是小数
String table = "0123456789ABCDEF";
StringBuilder ret = new StringBuilder();
if(m < 0) {
m = -m;
flg = true;
}
while(m != 0) {
ret.append(table.charAt(m%n));
m = m/n;
}
if(flg) {
ret.append("-");
}
ret.reverse();
System.out.println(ret);
}
}