2020年3月1日 星期日

[zerojudge]a034. 二進位制轉換

a034. 二進位制轉換

日常生活中使用的是十進位,遇到十就進位,那二進位就是遇到二就進位。 十進位轉二進位 可以參考:【CodingBar】什麼是二進位?|程人式界科普 #01

方法一—直接toBinaryString,超簡單暴力。
方法二—樸實除除樂,如上圖去取除二之後的餘數,然後把順序倒過來輸出。

方法一:

  1. /* a034. 二進位制轉換
  2. *
  3. * 2020/3/2
  4. */
  5.  
  6. import java.util.Scanner;
  7.  
  8. public class Pa034{
  9.  
  10. public static void main(String[] args){
  11. Scanner scanner = new Scanner(System.in);
  12.  
  13. while(scanner.hasNext()){
  14. System.out.println(Integer.toBinaryString(scanner.nextInt()));
  15. }
  16. }
  17. }

方法二:

  1. /* a034. 二進位制轉換
  2. *
  3. * 2020/3/2
  4. */
  5.  
  6. import java.util.Scanner;
  7.  
  8. public class Pa034_2{
  9.  
  10. public static void main(String[] args){
  11. Scanner scanner = new Scanner(System.in);
  12.  
  13. while(scanner.hasNext()){
  14. int decNum = scanner.nextInt();
  15.  
  16. boolean[] binNum = new boolean[(int)(Math.log(decNum) / Math.log(2)) + 1];
  17.  
  18. for(int i = binNum.length - 1; i >= 0; i--){
  19. binNum[i] = decNum % 2 == 0? false: true;
  20. decNum /= 2;
  21. }
  22.  
  23. for(int i = 0; i < binNum.length; i++){
  24. System.out.print(binNum[i]? 1: 0);
  25. }
  26.  
  27. System.out.println();
  28. }
  29. }
  30. }

沒有留言:

張貼留言