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); } } }
沒有留言:
張貼留言