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(); } }
文章標籤
全站熱搜