1. 单元变量常用大数操作:
import java.util.Scanner; import java.math.*; public class Main{ public static void main(String args[]){ Scanner cin= new Scanner(System.in); //使用Sacnner类创建cin对象 BigInteger a, b;//创建大数对象 while(cin.hasNext()){ a=cin.nextBigInteger(); b=cin.nextBigInteger(); System.out.println("a+b="+a.add(b)); System.out.println("a-b="+a.subtract(b)); System.out.println("a*b="+a.multiply(b)); System.out.println("a/b="+a.divide(b)); System.out.println("a%b="+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 e=10; System.out.println(a.pow(e));//求a^e System.out.println(a.toString()); //将大数a转字符串输出 int p=8; System.out.println(a.toString(p)); //将大数a转换成p进制后 按字符串输出 } } }
2.java大数 实现递推公式:f[i]=f[i-1]+f[i-2]*2
import java.util.*; import java.math.*; //导入类 public class Main{ static BigInteger[] ans; //定义全局变量 public static void main(String[] args){ Scanner reader=new Scanner(System.in); //定义Scanner类对象 ans = new BigInteger[251]; //定义ans大数数组的大小 ans[0]=BigInteger.valueOf(1);//大数赋初值 ans[1]=BigInteger.valueOf(1); ans[2]=BigInteger.valueOf(3); for(int i=3; i<=250; i++) { ans[i] = ans[i-1].add(ans[i-2].multiply(BigInteger.valueOf(2))); } //大数加法的使用 int n; while(reader.hasNextInt()){ n=reader.nextInt(); System.out.println(ans[n]); //普通输出 } } }
时间: 2024-11-17 02:29:54