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