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); 
        int t = cin.nextInt();
        for(int i=0;i<t;i++){
            BigInteger a = cin.nextBigInteger(),b = cin.nextBigInteger();
            System.out.println(a.add(b));
        }
    }  
}
/**************************************************************
    Problem: 1151
    User: jimmy_chan
    Language: Java
    Result: Accepted
    Time:250 ms
    Memory:17388 kb
****************************************************************/

大斐波数:

点击打开链接

import java.io.*;   
import java.util.*; 
import java.math.*;
public class Main
{
    public static void main(String args[])  
    {
        Scanner cin = new Scanner(System.in); 
        BigInteger []a=new BigInteger[1001];
        a[0]=a[1]=a[2]=BigInteger.ONE;
        for(int i=3;i<=1000;i++){
            a[i]=a[i-1].add(a[i-2]);
        }
        int t = cin.nextInt();
        for(int i=0;i<t;i++){
            int n = cin.nextInt();
            System.out.println(a[n]);
        }
    }  
}
/**************************************************************
    Problem: 1293
    User: jimmy_chan
    Language: Java
    Result: Accepted
    Time:176 ms
    Memory:17228 kb
****************************************************************/


大整数比较:

点击打开链接

菜鸡写法,纯粹为了测试大数~QAQ

import java.io.*;   
import java.util.*; 
import java.math.*;
public class Main
{
    public static void main(String args[])  
    {
        Scanner cin = new Scanner(System.in); 
        BigInteger a = cin.nextBigInteger(),b = cin.nextBigInteger(),c = cin.nextBigInteger();
        BigInteger t = (a.min(b)).min(c);
        BigInteger t1 = (a.max(b)).max(c);
        System.out.println(t);
        if(!a.equals(t1)&&!a.equals(t))System.out.println(a);
        else if(!b.equals(t1)&&!b.equals(t))System.out.println(b);
        else if(!c.equals(t1)&&!c.equals(t))System.out.println(c);
        System.out.println(t1);
    }  
}
/**************************************************************
    Problem: 1169
    User: jimmy_chan
    Language: Java
    Result: Accepted
    Time:164 ms
    Memory:16740 kb
****************************************************************/


大整数进制转换:

点击打开链接

import java.io.*;   
import java.util.*; 
import java.math.*;
public class Main
{
    public static void main(String args[])  
    {
        Scanner cin = new Scanner(System.in); 
        BigInteger a = cin.nextBigInteger(16),b = cin.nextBigInteger(16);
        BigInteger ans = a.add(b);
        String st = ans.toString(16);
         
        System.out.println(st);
    }  
}
/**************************************************************
    Problem: 1703
    User: jimmy_chan
    Language: Java
    Result: Accepted
    Time:160 ms
    Memory:16720 kb
****************************************************************/

最最后,给大家一个tip,如果看到一个大数题,不要太高兴,这也许是出题人(丧心病狂QAQ)出的一道专门卡java大数类的题目,这时候应该冷静下来,默默打开statu,选择java和题号,看看有木有人通过Orz....

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值