HDU1002   A + B Problem II

【题意】大数相加

【链接】http://acm.hdu.edu.cn/showproblem.php?pid=1002

Sample Input
2
1 2
112233445566778899 998877665544332211
 
Sample Output
Case 1:
1 + 2 = 3 Case 2:
112233445566778899 + 998877665544332211 = 1111111111111111110

代码:

import java.io.*;
import java.util.*;
import java.math.BigInteger;//声明BigInteger大数类
import java.lang.*;
public class Main
{
public static void main(String args[])
{
Scanner cin = new Scanner(System.in);
int t,i=1;
t = cin.nextInt();
int tot = 0;
BigInteger a,b,c; //BigInteger类型
while (i<=t)
{
a=cin.nextBigInteger();
b=cin.nextBigInteger();
c=a.add(b);
System.out.println("Case "+i+":");
System.out.println(a+" + "+b+" = "+c);
if(i<t) System.out.println("");
i++;
}
}
}

HDU1042 N!

【题意】大数阶乘

【链接】

pid=1042" style="color:rgb(202,0,0); text-decoration:none">http://acm.hdu.edu.cn/showproblem.php?pid=1042

Sample Input
1
2
3
 
Sample Output
1
2
6

代码:

import java.io.*;
import java.util.*;
import java.math.BigInteger;//声明BigInteger大数类
import java.lang.*;
public class FF
{
public static void main(String args[])
{
Scanner cin = new Scanner(System.in);
while(cin.hasNext())
{
int n=cin.nextInt();
BigInteger ans=BigInteger.ONE;
for(int i=1; i<=n; ++i)
{
ans=ans.multiply(BigInteger.valueOf(i));
}
System.out.println(ans);
System.gc(); //调用垃圾回收机制
}
}
}

HDU 1047 Integer Inquiry

【题意】多个大数相加

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

Sample Input
1 123456789012345678901234567890
123456789012345678901234567890
123456789012345678901234567890
0
 
Sample Output
370370367037037036703703703670

注意下格式

代码:

import java.io.*;
import java.util.*;
import java.math.BigInteger;//声明BigInteger大数类
import java.lang.*;
public class Main
{
public static void main(String args[])
{
Scanner cin = new Scanner(System.in);
int n=cin.nextInt();
while(n-->0)
{
BigInteger a,b,c;
b=BigInteger.ZERO;
while(cin.hasNextBigInteger())
{
c=BigInteger.ZERO;
c=cin.nextBigInteger();
if(!c.equals(BigInteger.valueOf(0)))
b=b.add(c);
else
{
System.out.println(b);
if(n!=0)
System.out.println("");
break;
}
}
System.gc();
}
}
}

HDU 1715  大菲波数

【题意】RT

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

Sample Input
5
1
2
3
4
5
 
Sample Output
1
1
2
3
5

代码:

import java.io.*;
import java.util.*;
import java.math.BigInteger;//声明BigInteger大数类
import java.lang.*;
public class Main
{
public static void main(String args[])
{
Scanner cin = new Scanner(System.in);
int n=cin.nextInt();
BigInteger fac[]= new BigInteger[1001];
fac[0]=BigInteger.ZERO;//初始赋值
fac[1]=BigInteger.ONE;
for(int i=2; i<=1000; ++i) fac[i]=fac[i-1].add(fac[i-2]);
while(n-->0)
{
int a;
a=cin.nextInt();
System.out.println(fac[a]);
}
//System.gc();
}
}

HDU 1063  Exponentiation

【题意】高精度幂

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

Sample Input
95.123 12
0.4321 20
5.1234 15
6.7592 9
98.999 10
1.0100 12
 
Sample Output
548815620517731830194541.899025343415715973535967221869852721
.00000005148554641076956121994511276767154838481760200726351203835429763013462401
43992025569.928573701266488041146654993318703707511666295476720493953024
29448126.764121021618164430206909037173276672
90429072743629540498.107596019456651774561044010001
1.126825030131969720661201

最简形式是去掉后面的 0,以及小于 1 的小数的小数点前的 0

实现高精度幂java方法:

(1)调用pow函数

(2)for循环

代码:

import java.io.*;
import java.util.*;
import java.math.BigDecimal;
import java.math.BigInteger;//声明BigInteger大数类
import java.lang.*;
public class Main
{
public static void main(String args[])
{
Scanner cin = new Scanner(System.in);
while(cin.hasNext())
{
BigDecimal ans=cin.nextBigDecimal();
int n=cin.nextInt();
String res=ans.pow(n).stripTrailingZeros().toPlainString();//整数去掉小数点和后面的0
       if(res.startsWith("0"))//去掉前导0
{
res=res.substring(1);
}
System.out.println(res);
/* BigDecimal a=BigDecimal.ONE;
int n=cin.nextInt();
for(int i=1; i<=n; ++i)
a=a.multiply(ans);
String res=a.stripTrailingZeros().toPlainString();
if(res.startsWith("0"))
{
res=res.substring(1);
}
System.out.println(res);
*/
}
}
}

HDU 1316   How Many Fibs?

【题意】区间fibonacci

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

Sample Input
10 100
1234567890 9876543210
0 0
 
Sample Output
5
4

代码:

import java.io.*;
import java.util.*;
import java.math.BigDecimal;
import java.math.BigInteger;//声明BigInteger大数类
public class Main
{
public static void main(String args[])
{
Scanner cin = new Scanner(System.in);
BigInteger a,b;
int ans,i;
BigInteger fac[]=new BigInteger[1005];
BigInteger zero=BigInteger.ZERO;
fac[1]=BigInteger.valueOf(1);
fac[2]=BigInteger.valueOf(2);
for(i=3; i<1005; ++i) fac[i]=fac[i-1].add(fac[i-2]);
while(cin.hasNextBigInteger())
{
a=cin.nextBigInteger();
b=cin.nextBigInteger();
if(a.compareTo(zero)==0&&b.compareTo(zero)==0) break;
for(ans=0,i=1; i<1005; ++i)
{
if(a.compareTo(fac[i])<=0&&b.compareTo(fac[i])>=0) ans++;
if(b.compareTo(fac[i])<0) break;
}
System.out.println(ans);
}
}
}

HDU 1753   大明A+B (高精度)

【题意】高精度小数相加

【链接】http://acm.hdu.edu.cn/showproblem.php?

pid=1753

Sample Input
1.1 2.9
1.1111111111 2.3444323343
1 1.1
 
Sample Output
4
3.4555434454
2.1

代码:

import java.io.*;
import java.util.*;
import java.math.BigDecimal;
import java.math.BigInteger;//声明BigInteger大数类
public class Main
{
public static void main(String args[])
{
Scanner cin = new Scanner(System.in);
BigDecimal a,b,c;
while(cin.hasNextBigDecimal())
{
a=cin.nextBigDecimal();
b=cin.nextBigDecimal();
c=a.add(b);
String res=c.stripTrailingZeros().toPlainString();
System.out.println(res);
}
}
}

HDU高精度总结(java大数类)的更多相关文章

  1. JAVA大数类

    JAVA大数类api http://man.ddvip.com/program/java_api_zh/java/math/BigInteger.html#method_summary 不仅仅只能查J ...

  2. ZOJ3477&JAVA大数类

    转:http://blog.csdn.net/sunkun2013/article/details/11822927 import java.util.*; import java.math.BigI ...

  3. JAVA大数类练手

    今天突然看到了OJ上的大数类题目,由于学习了一点大数类的知识.果断水了6道题......都是非常基础的.就当的练手的吧. 学到的只是一些大数类的基本操作.以后多做点这样的题,争取熟练运用水大数题... ...

  4. Java大数类介绍

    java能处理大数的类有两个高精度大整数BigInteger 和高精度浮点数BigDecimal,这两个类位于java.math包内,要使用它们必须在类前面引用该包:import java.math. ...

  5. JAVA大数类—基础操作(加减乘除、取模、四舍五入、设置保留位数)

    当基础数据类型长度无法满足需求时可以使用大数类 构造方法接受字符串为参数 BigInteger bInt = new BigInteger("123123"); BigDecima ...

  6. hdu 1042 N! java大数及判断文件末尾

    N! Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)Total Submi ...

  7. HDU 1212 Big Number(C++ 大数取模)(java 大数类运用)

    Big Number 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1212 ——每天在线,欢迎留言谈论. 题目大意: 给你两个数 n1,n2.其中n1 ...

  8. 多校第六场 HDU 4927 JAVA大数类+模拟

    HDU 4927 −ai,直到序列长度为1.输出最后的数. 思路:这题实在是太晕了,比赛的时候搞了四个小时,从T到WA,唉--对算组合还是不太了解啊.如今对组合算比較什么了-- import java ...

  9. JAVA - 大数类详解

    写在前面 对于ACMer来说,java语言最大的优势就是BigInteger,Bigdecimal,String三个类. 这三个类分别是高精度整数,高精度浮点数和字符串,之所以说这个是它的优势是因为j ...

随机推荐

  1. [Markdown]纯文本标记语言MarkdowPad2--MD语法知识

    ##1.标题 代码 注:# 后面保持空格 # h1 ## h2 ### h3 #### h4 ##### h5 ###### h6 ####### h7 // 错误代码 ######## h8 // ...

  2. 【R笔记】apply函数族

      (1)    apply apply函数通过对数组,矩阵,或非空维数值的数据框的“边缘”(margin)即行或列运用函数.返回值为向量,数组或列表.   函数形式 apply(X, MARGIN, ...

  3. 如何用css做一个爱心

    摘要:HTML的标签都比较简单,入门非常的迅速,但是CSS是一个需要我们深度挖掘的东西,里面的很多样式属性掌握几个常用的便可以实现很好看的效果,下面我便教大家如何用CSS做一个爱心. 前期预备知识: ...

  4. 使用原生JS进行字符串转对象

    字符串转对象 目的 工作中如果需要原生 JS 完成字符转对象的话可以通过 JSON.parse(str), 但是这个方法是ES5中才出现, 如果需要兼容低版本就需要其它方法 使用原生 JS 解决字符串 ...

  5. Java使用纯真IP库获取IP对应省份和城市

    原文:http://blog.csdn.net/chwshuang/article/details/78027873?locationNum=10&fps=1 Java使用纯真IP库获取IP对 ...

  6. Git -- 自己项目关联新建的git

  7. 监控Coherence成员的加入和离开集群事件

    对server事件的监控主要是实现MemberListener类,对Cache事件的监控主要通过MapListener 参考代码 package coherencetest; import com.t ...

  8. Windows下启动Solr报错:Nothing to start,exiting...

    如果用java -jar start.jar命令启动Solr时报错:Nothing to start,exiting...,可尝试: 百度jetty,上官网下载压缩包并解压(下载页面地址:http:/ ...

  9. 【转】es6的拓展运算符 spread ...

    原文:https://blog.csdn.net/qq_30100043/article/details/53391308 The rest parameter syntax allows us to ...

  10. mongodb 踩坑记录

    Map-Reduce Map-Reduce 是 mongodb 处理批量数据的大杀器,凡是数据量大并且定时处理能满足需求的,都可以试着扔给 mongodb,让它去 Map-Reduce. 以下截取自文 ...