a021. 大數運算
理論上大數運算是很驚悚的問題,因為就算是long long int也不夠儲存,所以要把每個位數存進陣列然後透過超複雜的演算法才能得到答案。
幸好Java有幫我們寫好了函式庫可用,那就是BigInteger這個神奇類別,提供很多大數的計算方法,輕輕鬆鬆解決這個地獄難題。
如果對大數運算的實作有興趣的話可以看這個演算法筆記,裡面詳盡介紹了如何用優雅至極的語法完成大數運算。
程式碼如下:
/* a021. 大數運算
*
* 2020/3/2
*/
import java.util.Scanner;
import java.math.BigInteger;
public class Pa021{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
while(scanner.hasNext()){
BigInteger big_a = new BigInteger(scanner.next());
String op = scanner.next();
BigInteger big_b = new BigInteger(scanner.next());
switch(op){
case "+":
big_a = big_a.add(big_b);
break;
case "-":
big_a = big_a.add(big_b.negate());
break;
case "*":
big_a = big_a.multiply(big_b);
break;
case "/":
big_a = big_a.divide(big_b);
break;
}
System.out.println(big_a);
}
}
}
沒有留言:
張貼留言