现在的位置: 首页 > 综合 > 正文

poj-1001-1405-1503-高精度问题

2013年09月10日 ⁄ 综合 ⁄ 共 1832字 ⁄ 字号 评论关闭

三道高精度的问题用java解决:

题目比较简单在这里不必说了。

首先其实高精度这几道题目主要用到了BigInteger和BigDecimal数据类型。另外像add,sum,pow等函数。

代码:

1001:次幂

import java.math.*;
import java.io.*;
import java.util.*;

public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Scanner cin = new Scanner(new BufferedInputStream(System.in));
        while(cin.hasNextBigDecimal()){
            BigDecimal a = cin.nextBigDecimal();
            int n = cin.nextInt();
            a = a.pow(n);
            a = a.stripTrailingZeros();
            String str = a.toPlainString();
            if(str.charAt(0) == '0'&&!str.equals("0")){
                str = str.substring(1);
            }
            System.out.println(str);

        }

    }

}

 

1405:乘法

import java.io.*;
import java.math.*;
import java.util.*;

/**
 *
 * @author friendy
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
      Scanner cin=new Scanner(new BufferedInputStream(System.in));
      int n;
      BigInteger res,rnext;
      n=cin.nextInt();
      if(n==1)
        System.out.println(2);
      else if(n==2){
           System.out.println(2);
           System.out.println(3);
      }
      else{
          res=BigInteger.valueOf(6);
          System.out.println(2);
          System.out.println(3);
         for(int i=3;i<=n;i++){
             rnext=res.add(BigInteger.valueOf(1));
             res=res.multiply(rnext);
             System.out.println(rnext);
         }

      }

 

    }

}
1503:加法

import java.io.*;
import java.math.*;
import java.util.*;
//import java.text.*;
public class Main {

    public static void main(String[] args) {
    Scanner cin=new Scanner(new BufferedInputStream(System.in));
    BigInteger a;
    BigInteger sum;
    sum=BigInteger.valueOf(0);
    //System.out.println(sum);
    while(true)
    {
        a=cin.nextBigInteger();
     if(a.equals(BigInteger.valueOf(0)))
      break;
     sum=sum.add(a);
    }
    System.out.println(sum);
    }
}

 

 

抱歉!评论已关闭.