https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&page=show_problem&problem=960
import java.util.*; public class Main { public static void main(String[] args) { Scanner scn = new Scanner(System.in); int n = scn.nextInt(); for (int i = 0; i < n; i++) { String str = scn.next(); System.out.printf("%d %d\n", Integer.bitCount(Integer.parseInt(str)), Integer.bitCount(Integer.parseInt(str, 16))); } } /* 題目:Q10019 : Funny Encryption Method 作者:1010 時間:西元 2016 年 7 月 */ }
困難度 ★
Java 內有提供轉二進位函數
public class Test { public static void main(String args[]) { int n = 8; System.out.println(Integer.toBinaryString(n)); } }Integer 類別有 static parseInt() 方法,可以將字串 (string) 中的整數轉換 int 型態的數值 (value)
static int parseInt(String s, int radix) 可將字串解析為指定進位的整數
public class Test { public static void main(String args[]) { String s = "22"; int i1 = Integer.parseInt(s); int i2 = Integer.parseInt(s, 16); System.out.println(i1); System.out.println(i2); } }
利用 Integer.bitCount計算出二進位位元數
public class Test { public static void main(String args[]) { int n = 170; // 10101010 System.out.println("Value in binary: 10101010"); System.out.println("Number of one bits: " + Integer.bitCount(n)); System.out.println("Highest one bit: " + Integer.highestOneBit(n)); System.out.println("Lowest one bit: " + Integer.lowestOneBit(n)); } }
} |
沒有留言:
張貼留言