java 关于大数的一些问题

hdu 1047

链接:http://acm.hdu.edu.cn/showproblem.php?pid=1047

代码:

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

public class Main {
    public static void main(String arg[]) {
        int T, ans = 0;
        BigInteger a;
        Scanner cin = new Scanner(System.in);
        T = cin.nextInt();
        while (T-- > 0) {
            ans++;
            BigInteger sum = new BigInteger("0");
            while (true) {
                a = cin.nextBigInteger();
                sum = sum.add(a);
                if (a.compareTo(new BigInteger("0")) == 0)
                    break;
            }
            if (ans > 1)
                System.out.println();
            System.out.println(sum);
        }
    }
}
hdu 1063

链接:http://acm.hdu.edu.cn/showproblem.php?pid=1063

代码:

import java.math.*;
import java.util.*;
import java.lang.*;
public class Main {
    public static void main(String arg[]){
        BigDecimal a;
        int n,i;
        String s;
        Scanner cin=new Scanner(System.in);
        while(cin.hasNext()){
            BigDecimal sum=new BigDecimal("1");
            a=cin.nextBigDecimal();
            n=cin.nextInt();
            for(i=0;i<n;i++){
                sum=sum.multiply(a);
            }
            s=sum.stripTrailingZeros().toPlainString();
            if(s.startsWith("0"))
                s=s.substring(1);
            System.out.println(s);
        }
    }
}
hdu 1316

链接:http://acm.hdu.edu.cn/showproblem.php?pid=1316

代码:

import java.math.*;
import java.util.*;
public class Main {
     public static void main(String arg[]){
         Scanner cin=new Scanner(System.in);
         BigInteger a,b;
         int sum;
         BigInteger f[]=new BigInteger[1000];
         f[1]=new BigInteger("1");
         f[2]=new BigInteger("2");
         for(int i=3;i<600;i++)
             f[i]=f[i-1].add(f[i-2]);
         while(true){
             sum=0;
             a=cin.nextBigInteger();
             b=cin.nextBigInteger();
             if(a.add(b).compareTo(new BigInteger("0"))==0)
                 break;
             for(int i=1;i<600;i++){
                 if(f[i].compareTo(a)>=0&&f[i].compareTo(b)<=0)
                     sum++;
                 if(f[i].compareTo(b)>0)
                     break;
             }
             System.out.println(sum);
         }
     }
}

hdu 1715

链接:http://acm.hdu.edu.cn/showproblem.php?pid=1715

代码:

import java.math.*;
import java.util.*;
public class Main {
     public static void main(String arg[]){
         BigInteger a[]=new BigInteger [1005];
         int T,n;
         Scanner cin=new Scanner(System.in);
         T=cin.nextInt();
         while(T-- >0){
             a[1]=a[2]=new BigInteger("1");
             n=cin.nextInt();
             for(int i=3;i<=n;i++)
                 a[i]=a[i-1].add(a[i-2]);
             System.out.println(a[n]);
         } 
     }
}

hdu 1753

链接:http://acm.hdu.edu.cn/showproblem.php?pid=1753
代码:

import java.math.*;
import java.util.*;
import java.io.*;
public class Main {
     public static void main(String arg[]){
         Scanner cin=new Scanner(System.in);
         while(cin.hasNext()){
             String str;
             BigDecimal a=cin.nextBigDecimal();
             BigDecimal b=cin.nextBigDecimal();
             BigDecimal ans;
             ans=a.add(b);
             System.out.println(ans.stripTrailingZeros().toPlainString());
         }        
     }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值