三道高精度的问题用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);
}
}