HDU高精度总结(java大数类)
HDU1002 A + B Problem II
【题意】大数相加
【链接】http://acm.hdu.edu.cn/showproblem.php?pid=1002
2
1 2
112233445566778899 998877665544332211
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!
【题意】大数阶乘
1
2
3
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
1 123456789012345678901234567890
123456789012345678901234567890
123456789012345678901234567890
0
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
5
1
2
3
4
5
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
95.123 12
0.4321 20
5.1234 15
6.7592 9
98.999 10
1.0100 12
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
10 100
1234567890 9876543210
0 0
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
1.1 2.9
1.1111111111 2.3444323343
1 1.1
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大数类)的更多相关文章
- JAVA大数类
JAVA大数类api http://man.ddvip.com/program/java_api_zh/java/math/BigInteger.html#method_summary 不仅仅只能查J ...
- ZOJ3477&JAVA大数类
转:http://blog.csdn.net/sunkun2013/article/details/11822927 import java.util.*; import java.math.BigI ...
- JAVA大数类练手
今天突然看到了OJ上的大数类题目,由于学习了一点大数类的知识.果断水了6道题......都是非常基础的.就当的练手的吧. 学到的只是一些大数类的基本操作.以后多做点这样的题,争取熟练运用水大数题... ...
- Java大数类介绍
java能处理大数的类有两个高精度大整数BigInteger 和高精度浮点数BigDecimal,这两个类位于java.math包内,要使用它们必须在类前面引用该包:import java.math. ...
- JAVA大数类—基础操作(加减乘除、取模、四舍五入、设置保留位数)
当基础数据类型长度无法满足需求时可以使用大数类 构造方法接受字符串为参数 BigInteger bInt = new BigInteger("123123"); BigDecima ...
- hdu 1042 N! java大数及判断文件末尾
N! Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total Submi ...
- HDU 1212 Big Number(C++ 大数取模)(java 大数类运用)
Big Number 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1212 ——每天在线,欢迎留言谈论. 题目大意: 给你两个数 n1,n2.其中n1 ...
- 多校第六场 HDU 4927 JAVA大数类+模拟
HDU 4927 −ai,直到序列长度为1.输出最后的数. 思路:这题实在是太晕了,比赛的时候搞了四个小时,从T到WA,唉--对算组合还是不太了解啊.如今对组合算比較什么了-- import java ...
- JAVA - 大数类详解
写在前面 对于ACMer来说,java语言最大的优势就是BigInteger,Bigdecimal,String三个类. 这三个类分别是高精度整数,高精度浮点数和字符串,之所以说这个是它的优势是因为j ...
随机推荐
- [Markdown]纯文本标记语言MarkdowPad2--MD语法知识
##1.标题 代码 注:# 后面保持空格 # h1 ## h2 ### h3 #### h4 ##### h5 ###### h6 ####### h7 // 错误代码 ######## h8 // ...
- 【R笔记】apply函数族
(1) apply apply函数通过对数组,矩阵,或非空维数值的数据框的“边缘”(margin)即行或列运用函数.返回值为向量,数组或列表. 函数形式 apply(X, MARGIN, ...
- 如何用css做一个爱心
摘要:HTML的标签都比较简单,入门非常的迅速,但是CSS是一个需要我们深度挖掘的东西,里面的很多样式属性掌握几个常用的便可以实现很好看的效果,下面我便教大家如何用CSS做一个爱心. 前期预备知识: ...
- 使用原生JS进行字符串转对象
字符串转对象 目的 工作中如果需要原生 JS 完成字符转对象的话可以通过 JSON.parse(str), 但是这个方法是ES5中才出现, 如果需要兼容低版本就需要其它方法 使用原生 JS 解决字符串 ...
- Java使用纯真IP库获取IP对应省份和城市
原文:http://blog.csdn.net/chwshuang/article/details/78027873?locationNum=10&fps=1 Java使用纯真IP库获取IP对 ...
- Git -- 自己项目关联新建的git
- 监控Coherence成员的加入和离开集群事件
对server事件的监控主要是实现MemberListener类,对Cache事件的监控主要通过MapListener 参考代码 package coherencetest; import com.t ...
- Windows下启动Solr报错:Nothing to start,exiting...
如果用java -jar start.jar命令启动Solr时报错:Nothing to start,exiting...,可尝试: 百度jetty,上官网下载压缩包并解压(下载页面地址:http:/ ...
- 【转】es6的拓展运算符 spread ...
原文:https://blog.csdn.net/qq_30100043/article/details/53391308 The rest parameter syntax allows us to ...
- mongodb 踩坑记录
Map-Reduce Map-Reduce 是 mongodb 处理批量数据的大杀器,凡是数据量大并且定时处理能满足需求的,都可以试着扔给 mongodb,让它去 Map-Reduce. 以下截取自文 ...