close

問題描述:
請撰寫一個程式,計算2的 i次方的值。(提示:利用位移運算元)

輸入說明:
輸入一個正整數,i的值小於31。

輸出說明:
輸出 的i次方的值。

若 i > 31 輸出 "Value of more than 31"

範例:

題目來源:http://e-tutor.itsa.org.tw/e-Tutor/mod/programming/view.php?id=6879

 

本題有提示 可以利用 "位移運算元"

上網查了一下發現,簡單來說

<< 左移一位,都相當於乘 2 的 1 次方

1   在二進制中可表示  0001

左移一位也就是二進制中全部左移

1 <<     1   也就是 0010  會變成 2    (( 1*2^1

1 <<    2   也就是 0100  會變成 4  (( 1*2^2

>>   移一位,就相反過來,變成除 2 的 1 次方

因此最簡單的寫法便是利用 "左移"運算元來完成本題

 

import java.util.Scanner;
public class C_MM09 {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		while(scanner.hasNext()){
			int a=scanner.nextInt();
			if(a>31){
				System.out.println("Value of more than 31");
			}else{
				System.out.println(1 << a);
			}
			
		}
		scanner.close();
	}
}

 

arrow
arrow
    文章標籤
    ITSA Java
    全站熱搜

    阿雅 發表在 痞客邦 留言(0) 人氣()