java大精度模运算_高精度运算——java

java大法

java的框架。

import java.io.*;

import java.util.*;

import java.math.*;

public class Main{

public static void main(String []args){

Scanner cin=new Scanner(System.in);

}

}

import的作用:简单的说就是导入,java有很多方法你可以直接使用,但是被封装在各个包(类)里面,你需要先导包,才能使用这个包里的方法。

*的作用:表示该包中的所有类,*是通配符。

import java.io*;表示引入java.io包里的所有类。

import java.util*;导入包含集合框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组、日期Date类、堆栈Stack类、向量Vector类等)。其实不用太理解,只需要知道这个跟C/C++中的头文件一样都要加上。

import java.math.*;表示导入跟数学计算相关的所有类。其中含有BigInteger和BigDecimal这两个非常好用的类,分别处理超长整数和超长浮点数。

import java.io.*;

import java.math.*;

import java.util.Scanner;

import java.util.*;

public class Main {//类名。需要用Main,因为OJ判题会找这个类名

public static void main(String [] args){//这个跟C/C++中的main函数一样

BigDecimal a,b; //用超长浮点类创建a、b两个对象

a=new BigDecimal ("0");//调用以String为参数的构造方法

b=new BigDecimal ("0");

Scanner in =new Scanner (System.in);//Scanner类创建in对象在控制台进行数据输入

while(in.hasNext()){//hasNext方法返回bool类型,用以多组数据输入

a=in.nextBigDecimal();//调用in对象的方法,将值赋给a对象

b=in.nextBigDecimal();

System.out.println(a.add(b).stripTrailingZeros().toPlainString());

//System.out.print()跟上面的差别是最后没有换行

//stripTrailingZeros()方法的作用是忽略后导零

//toPlainString()方法的作用是返回不带指数字段的字符串表示形式

}

}

}

import java.io.*;

import java.math.*;

import java.util.*;

public class Main {

public static void main(String []args){

Scanner cin = new Scanner (System.in);

int t,cnt=0;

t=cin.nextInt();

BigInteger a,b;

while(cnt

cnt++;

a=cin.nextBigInteger();

b=cin.nextBigInteger();

System.out.println("Case"+" "+cnt +":");

if(cnt

System.out.println(a+" + "+b+" = "+a.add(b));

System.out.println();

}else{

System.out.println(a+" + "+b+" = "+a.add(b));

}

}

}

}

import java.io.*;

import java.math.*;

import java.util.*;

public class Main {

public static void main(String []args){

Scanner cin = new Scanner (System.in);

BigInteger ans;

BigInteger one = new BigInteger ( "1" );//对象one 用来赋初值

while(cin.hasNext()){

int n=cin.nextInt();

ans=one;

for(int i=2;i<=n;i++){

ans=ans.multiply(BigInteger.valueOf(i));

}

System.out.println(ans);

}

}

}

import java.util.*;

import java.math.*;

public class Main {

public static void main(String [] args){

Scanner in = new Scanner(System.in);

int i,n;

BigInteger a,ans;

n=in.nextInt();

for( i=0; i

ans=BigInteger.valueOf(0);//用0赋初值

while(in.hasNext()){

a=in.nextBigInteger();

if(a.equals(BigInteger.ZERO)){//equal返回bool类型。如果相等则ture。

break;

}

ans=ans.add(a);

}

System.out.println(ans);

if(i!=n-1)

System.out.println();

}

//in.close();

}

}

import java.io.*;

import java.util.*;

import java.math.*;

public class Main{

public static void main(String [] args){

Scanner cin = new Scanner(System.in);

while(cin.hasNext()){

BigDecimal a= cin.nextBigDecimal();

int n=cin.nextInt();

String ans=a.pow(n).stripTrailingZeros().toPlainString();

//pow直接计算a的n次方

if(ans.startsWith("0")){//如果该对象是以0开头的

ans=ans.substring(1);//截取从指定索引处的字符开始到串尾

}

System.out.println(ans);

}

}

}

import java.io.*;

import java.util.*;

import java.math.*;

public class Main{

public static void main(String []args){

BigInteger f[]=new BigInteger [505]; //创建对象数组

BigInteger zero = new BigInteger("0");

f[1]=new BigInteger("1");//实例化对象

f[2]=new BigInteger("2");

for(int i=3;i<=501;i++){

f[i]=f[i-1].add( f[i-2] );

}

Scanner cin= new Scanner(System.in);

BigInteger a,b;

int i,k;

while(cin.hasNext()){

a=cin.nextBigInteger();

b=cin.nextBigInteger();

if(a.equals(zero)&&b.equals(zero)){//同时为零

break;

}

for( i=1,k=0;i<=500;i++){

if(a.compareTo(f[i])<=0 && b.compareTo(f[i])>=0 ){

//a.compareTo(b)方法a如果大于b,则返回1;如果相等,返回0;如果a小于b,返回-1

k++;

}

if( b.compareTo(f[i])<0 ) break;

}

System.out.println(k);

}

}

}

import java.io.*;

import java.util.*;

import java.math.*;

public class Main{

public static void main(String []args){

Scanner cin= new Scanner (System.in);

int n=cin.nextInt();

BigInteger a,b,c;

for(int i=0;i

a=cin.nextBigInteger();

b=cin.nextBigInteger();

if(!b.equals(BigInteger.ZERO)){

c=a.mod(b);//c=a%b

if(c.equals(BigInteger.ZERO)){

System.out.println("YES");

}else{

System.out.println("NO");

}

}

}

}

}

import java.io.*;

import java.util.*;

import java.math.*;

public class Main{

public static void main(String [] args){

BigDecimal f[]=new BigDecimal [120];

Scanner cin = new Scanner (System.in);

BigDecimal Zero = BigDecimal.ZERO;

int t,cnt=0,n;

t = cin.nextInt();

while(cnt

cnt++;

n = cin.nextInt();

int flag=0;

for(int i=0;i

f[i] = cin.nextBigDecimal();

if( f[i].compareTo(Zero) == 0 ){

flag++;

}

}

if(flag!=0){

if(flag!=n){

System.out.println("No");

}else{

System.out.println("Yes");

}

continue;

}

if(n<=2){

System.out.println("Yes");

}else{

BigDecimal a,b,c;

int i;

for(i=2;i

c=f[i];b=f[i-1];a=f[i-2];

if( a.multiply(c).compareTo(b.multiply(b))!=0 ){

System.out.println("No");

break;

}

}

if(i==n){

System.out.println("Yes");

}

}

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值