CPE UVA10931/UVA10019 [JAVA]

最後更新於 2021 年 6 月 18 日

UVA10019:Funny Encryption Method

UVA10931:Parity

兩題一起講,用到的函數基本上差不到哪去,就是進制轉換算1的個數。

UVA10019:Funny Encryption Method

題目原文https://onlinejudge.org/index.php?option=onlinejudge&Itemid=8&page=show_problem&problem=960

題目概要:把所輸入的數字分別視作10進位及16進位再轉成2進位,並計算各有多少個1。

Sample Input
3
265
111
1234
Sample Output
3 5
6 3
5 5

使用到 Integer.toBinaryString 及  Integer.parseInt(String s, int radix) 還有 charAt

程式碼

import java.util.*;
public class main{
    public static void main(String[] args) {
            Scanner sc=new Scanner(System.in);
            int c=sc.nextInt(); //幾筆資料
            while(c-- >0){
            	int dec = sc.nextInt(); //輸入資料
            	int hex = Integer.parseInt(""+dec,16); //將資料轉為16進制
            	String strDec = Integer.toBinaryString(dec); //將10進制轉為2進制
            	String strHex = Integer.toBinaryString(hex); //將16進制轉為2進制
            	int a=0,b=0;
            	for(int i=0;i<strDec.length();i++){
            		if(strDec.charAt(i)=='1'){
            			a++; //紀錄10進制轉2進制的dec有幾個1
            		}
            	}
            	for(int i=0;i<strHex.length();i++){
            		if(strHex.charAt(i)=='1'){
            			b++; //紀錄16進制轉2進制的dec有幾個1
            		}
            	}
            	System.out.println(a+" "+b);
            }
    }
};

UVA10931:Parity

題目原文https://onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&page=show_problem&problem=1872

題目概要:把所輸入的數字轉成2進位,並計算有多少個1。

Sample Input
1
2
10
21
0
Sample Output
The parity of 1 is 1 (mod 2).
The parity of 10 is 1 (mod 2).
The parity of 1010 is 2 (mod 2).
The parity of 10101 is 3 (mod 2).

使用到 Integer.toBinaryString charAt

程式碼

import java.util.*;
public class main{
    public static void main(String[] args) {
            Scanner sc=new Scanner(System.in);
            int num;
            while(sc.hasNext() && (num = sc.nextInt())!=0){  //輸入沒停且輸入值非0
            	String st = Integer.toBinaryString(num); //將輸入資料轉為二進位
            	int count=0;
            	for(int i=0;i<st.length();i++){
            		if(st.charAt(i)=='1') count++; //計算該二進位有多少個1
            	}
            	System.out.println("The parity of "+st+" is "+count+" (mod 2).");
            }
    }
};

Integer.toBinaryString http://tw.gitbook.net/java/lang/integer_tobinarystring.html

charAt https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/charAt

Integer.parseInt(String s, int radix) http://tw.gitbook.net/java/lang/integer_parseint_radix.html

4e52d54f6bc42abb41d26eb5b0df6517?s=250&d=wavatar&r=g CPE UVA10931/UVA10019 [JAVA]
0 0 評分數
Article Rating
訂閱
通知
guest
0 Comments
在線反饋
查看所有評論