zoukankan      html  css  js  c++  java
  • java中大数的一些基本运算

    import java.math.BigInteger;
    import java.util.Scanner;
    
    
    public class Main {
    	public static void main(String[] args) {
    		Scanner in = new Scanner(System.in);
    		BigInteger a,b;
    		while(in.hasNext())
    		{
    			a = in.nextBigInteger();
    			b = in.nextBigInteger();
    			//四则运算
    			System.out.println(a.add(b));
    			System.out.println(a.subtract(b));
    			System.out.println(a.multiply(b));
    			System.out.println(a.divide(b));
    			System.out.println(a.remainder(b));
    			//大数比较
    			if(a.compareTo(b)==0)
    				System.out.println("a==b");
    			else if(a.compareTo(b)>0) 
    				System.out.println("a>b");
    			else {
    				System.out.println("a<b");
    			}
    			//绝对值
    			System.out.println(a.abs());
    			//幂
    			int fun = 10;
    			System.out.println(a.pow(fun));
    			//大数x进制的字符串表示
    			int x = 8;
    			System.out.println(a.toString(x));
    			//大数返回十进制的字符串表示
    			System.out.println(a.toString());
    		}
    	}
    }
    

    toPlainString() //转为普遍计数法输出

    //给一个字符串1.238761976E-10
    //如何得到0.0000000001238761976这个字符串呢?
    BigDecimal bd = new BigDecimal("1.238761976E-10");  
    System.out.println(bd.toPlainString());

    stripTrailingZeros() //去掉末尾0

    //给一个字符串1245600.000
    //如何得到1245600这个字符串?
    BigDecimal bd=new BigDecimal("1245600.000");
    System.out.println(bd.stripTrailingZeros());

    hdu1063

    import java.math.BigDecimal;
    import java.math.BigInteger;
    import java.util.Scanner;
    
    public class Main {
        public static void main(String[] args) {
        
            Scanner in = new Scanner(System.in);
            while(in.hasNext())
            {
                BigDecimal ans = BigDecimal.valueOf(1);
                BigDecimal a = in.nextBigDecimal();
                Integer n = in.nextInt();
                while(n-->0)
                    ans = ans.multiply(a);
                    String str = ans.stripTrailingZeros().toPlainString().toString();
                    if(str.charAt(0)=='0')
                        str = str.substring(1);
                    System.out.println(str);    
            }
            in.close();
        }
    }
    

    hdu 1753

    import java.math.BigDecimal;
    import java.util.Scanner;
    
    public class test1 {
    	public static void main(String[] args) {
    	
    		Scanner in = new Scanner(System.in);
    		while(in.hasNext())
    		{
    			BigDecimal a = in.nextBigDecimal();
    			BigDecimal b = in.nextBigDecimal();
    				a=a.add(b);
    				String str = a.stripTrailingZeros().toPlainString().toString();
    				if(str.charAt(0)=='0')
    					str = str.substring(1);
    				System.out.println(str);	
    		}
    		in.close();
    	}
    }
    
  • 相关阅读:
    PLC 控制系统资源
    .net core 控制台程序生成EXE
    EF Core 日志跟踪sql语句
    Oracle 设置自启动
    数据库批量插入数据
    字符串面试题系列之六:在字符串中删除特定的字符
    字符串面试题系列之五:删除字符串空格
    字符串面试题系列之四:字符串匹配二
    字符串面试题系列之三:左旋转字符串
    字符串面试题系列之二:连续最长数字串
  • 原文地址:https://www.cnblogs.com/qie-wei/p/10160143.html
Copyright © 2011-2022 走看看