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