首页 > 试题广场 >

小乐乐与进制转换

[编程题]小乐乐与进制转换
  • 热度指数:27015 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解

小乐乐在课上学习了二进制八进制与十六进制后,对进制转换产生了浓厚的兴趣。因为他的幸运数字是6,所以他想知道一个数表示为六进制后的结果。请你帮助他解决这个问题。


输入描述:

输入一个正整数n  (1 ≤ n ≤ 109)



输出描述:
输出一行,为正整数n表示为六进制的结果
示例1

输入

6

输出

10
示例2

输入

120

输出

320
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        in.close();
        base6(n);
    }

    public static void base6(int n) {
        int[] base_6 = new int[100];
        int i = 0;
        while (n > 0) {
            base_6[i] = n % 6; 
            //十进制转其他进制:先余上目标进制数,再除目标进制数,循环往复。
            n /= 6;
            i++;
        }
        //反向输出,因为上面最后多加了个1,所以先减减。
        for (i--; i >= 0; i--) {
            System.out.print(base_6[i]);
        }
    }
}

发表于 2024-08-09 19:54:30 回复(0)

调用API即可

import java.util.Scanner;

import java.math.BigInteger;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNext()) { // 注意 while 处理多个 case
            String num = in.next();
            BigInteger b = new BigInteger(num);
            System.out.println(b.toString(6));
        }
    }
}
发表于 2023-07-08 11:46:13 回复(0)
import java.util.Scanner;
import java.util.ArrayList;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int a = in.nextInt();
        ArrayList<Integer> array = new ArrayList<Integer>();
        while(a!=0){
            array.add(a%6);
            a=a/6;
        }
        for(int i=array.size()-1;i>=0;i--){
            System.out.print(array.get(i));
        }
    }
}

发表于 2022-10-31 17:40:05 回复(0)
import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        System.out.printf("%s",Integer.toString(n,6));
    }
}

发表于 2022-08-13 23:45:42 回复(0)
import java.util.*;
public class Main {
    public static void main(String[] arg) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        System.out.println(Integer.toString(a, 6));
    }
}

发表于 2022-07-05 15:15:06 回复(0)
import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while(scanner.hasNext()){
            int num = scanner.nextInt();
            System.out.println(Integer.toString(num,6));
        }
    }
}

发表于 2022-06-28 11:56:13 回复(0)
import java.util.*;
public class Main{
  public static String tosix(int n) {
    if (n == 0)
      return "0";
    String six = "";
    while (n != 0) {
      six=n%6+six;
      n/=6;
    }
    return six;
  }
    
public static void main(String love[]){
   Scanner input=new Scanner(System.in);
   int n=input.nextInt();
    System.out.print(tosix(n));

} 
}

发表于 2022-05-11 14:14:24 回复(0)
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        List<Integer> list = new LinkedList<>();
        int k = n;
        int h = n;
        while (h >= 6) {
            k = h % 6;
            list.add(0, k);
            h = h / 6;
        }
        list.add(0, h);
        for (Integer m : list) {
            System.out.print(m);
        }
    }
}

发表于 2021-07-16 18:30:36 回复(0)
       java中的 StringBuffer 和 StringBuilder 类:当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类,和String类不同的是,这两个类的对象能够被多次修改,并且不产生新的未使用对象。
       在使用 StringBuffer 类时,每次都会对 StringBuffer 对象本身进行操作,而不是生成新的对象,所以如果需要对字符串进行修改推荐使用 StringBuffer
       StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。
       由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。

       将一个十进制数(默认十进制数)转换成其他任意进制数的一个通用方法就是“除取余”,不停的除以基数,取余数,直到商为0,然后将每次得到的余数倒序输出,即为该十进制数对应的某进制数。
import java.util.Scanner ;
public class Main{
    public static void main(String[] args){
        
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        StringBuilder r = new StringBuilder();
        while(n>0){
            r.append( n%6 );
            n /= 6 ;
        }
        System.out.println( r.reverse());
        
    }
}

       还可以用 Integer.toString( int  a ,int  b) :a表示要转成字符串的数字,b表示要转成的进制。
例如:Integer.toString( 14,8) —>  把14转成8进制表示的字符串
编辑于 2021-03-01 17:51:05 回复(1)
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNext()) {
            System.out.println(Integer.toString(sc.nextInt(), 6));
        }
    }
}


发表于 2020-10-07 15:44:28 回复(0)
import java.util.Scanner;
public class Main{
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        int a=sc.nextInt();
        String b=Integer.toString(a, 6);
        System.out.print(b);
    }
}
发表于 2020-09-15 19:36:13 回复(0)
import java.util.Scanner;
import java.util.ArrayList;

public class Main {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner scanner=new Scanner(System.in);
        long s1=scanner.nextLong();
        ArrayList<Long> arList=new ArrayList<Long>();
        while(s1!=0) {
            arList.add(s1%6);
            s1=s1/6;
        }
        
        for(int i=arList.size()-1;i>=0;i--) {
            System.out.print(arList.get(i));
        }
    }
    
    
}
            
    


发表于 2020-06-12 11:40:00 回复(0)