JAVA大数类练手
今天突然看到了OJ上的大数类题目,由于学习了一点大数类的知识。果断水了6道题。。。。。。都是非常基础的。就当的练手的吧。
学到的只是一些大数类的基本操作。以后多做点这样的题,争取熟练运用水大数题。。。
大数阶乘
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=28
代码如下:
- import java.io.*;
- import java.math.BigInteger;
- import java.util.*;
- public class Main
- {
- public static void main(String args[])
- {
- Scanner cin = new Scanner(System.in);
- 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);
- }
- }
棋盘覆盖
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=45
代码如下:
- import java.math.BigInteger;
- import java.util.*;
- import java.io.*;
- public class Main
- {
- public static void main(String args[])
- {
- Scanner in = new Scanner(System.in);
- int test = in.nextInt();
- while(test-- > 0)
- {
- int n;
- n = in.nextInt();
- BigInteger a = new BigInteger("4");
- for(int i = 1; i < n; ++i)
- a = a.multiply(BigInteger.valueOf(4));
- System.out.println(a.subtract(BigInteger.valueOf(1)).divide(BigInteger.valueOf(3)));
- }
- }
- }
比较大小
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=73
代码如下:
- import java.io.*;
- import java.math.BigInteger;
- import java.util.*;
- public class Main
- {
- public static void main(String args[])
- {
- Scanner cin = new Scanner(System.in);
- while(cin.hasNext())
- {
- BigInteger a = cin.nextBigInteger();
- BigInteger b = cin.nextBigInteger();
- if(a.equals(BigInteger.ZERO) && b.equals(BigInteger.ZERO))
- break;
- int flag = a.compareTo(b);
- if(flag == -1)
- System.out.println("a<b");
- else if(flag == 0)
- System.out.println("a==b");
- else
- System.out.println("a>b");
- }
- }
- }
大数加法
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=103
代码如下:
- import java.math.BigInteger;
- import java.util.*;
- import java.io.*;
- public class Main
- {
- public static void main(String args[])
- {
- Scanner in = new Scanner(System.in);
- int n = in.nextInt();
- for(int i = 1; i <= n; ++i)
- {
- BigInteger a = in.nextBigInteger();
- BigInteger b = in.nextBigInteger();
- BigInteger ans = a.add(b);
- System.out.println("Case " + i + ":");
- System.out.println(a + " + " + b + " = " +ans);
- }
- }
- }
递推求值
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=114
代码如下:
- import java.io.*;
- import java.math.BigInteger;
- import java.util.*;
- public class Main
- {
- public static void main(String args[])
- {
- Scanner cin = new Scanner(System.in);
- BigInteger a[] = new BigInteger[100];
- while(cin.hasNext())
- {
- for(int i = 0; i <= 2; ++i)
- a[i] = cin.nextBigInteger();
- for(int i = 3; i <= 99; ++i)
- a[i] = a[i - 1].add(a[i - 2]).add(a[i - 3]);
- System.out.println(a[99]);
- }
- }
- }
高精度幂
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=155
代码如下:
- import java.io.*;
- import java.math.BigDecimal;
- import java.util.*;
- 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);
- }
- }
- }
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大数类介绍
java能处理大数的类有两个高精度大整数BigInteger 和高精度浮点数BigDecimal,这两个类位于java.math包内,要使用它们必须在类前面引用该包:import java.math. ...
- HDU高精度总结(java大数类)
HDU1002 A + B Problem II [题意]大数相加 [链接]http://acm.hdu.edu.cn/showproblem.php?pid=1002 Sample Inpu ...
- JAVA大数类—基础操作(加减乘除、取模、四舍五入、设置保留位数)
当基础数据类型长度无法满足需求时可以使用大数类 构造方法接受字符串为参数 BigInteger bInt = new BigInteger("123123"); BigDecima ...
- JAVA - 大数类详解
写在前面 对于ACMer来说,java语言最大的优势就是BigInteger,Bigdecimal,String三个类. 这三个类分别是高精度整数,高精度浮点数和字符串,之所以说这个是它的优势是因为j ...
- Java 大数类BigInteger和BigDecimal的基本函数
在Java中有两个类BigInteger和BigDecimal分别表示不可变的任意精度的整数和不可变的有符号的任意精度的十进制数(浮点数).主要用于高精度计算中.这两个类使得java中的大数,高精度运 ...
- Java大数类BigDecimal及八种舍入模式的介绍
BigDecimal的引入 在利用Java编程语言开发银行.金融类等需要对数值进行高精度计算的软件时,我们经常使用BigDecimal和BigInteger这两个大数据类,而不是常见的int.long ...
- Java 大数类
划分结果存在数组.供应商下标0 在剩下的标记1 import java.math.BigInteger; import java.util.Scanner; public class Main { p ...
随机推荐
- 【MINA】用protobuf做编解码协议
SOCKET协议 支持java serial 与 AMF3的混合协议,目前没有基于xml 与 json的实现. 协议说明: * 9个字节协议头+协议体. * * 协议头1-4字节表示协议长度 =协议体 ...
- java--简单排序算法
1.冒泡排序 排序原理: 过程简单,首先将第一个记录的关键字和第二个记录的关键字进行比较,若为逆序,则将两个记录交换,然后比较第二个记录与第三个记录得关键字.以此类推,直至第n-1个记录和第n个记录的 ...
- 如何覆盖aar的资源
1.首先理解一下aar的构造 classes.jar ----代码 res---资源文件 2.替换 查看res里面的资源文件,这个资源文件事实上都是跟安卓的资源文件夹是一样的.你只需要理解xml和里面 ...
- C# 打印多页tif
注意点: 1.计算image对象总页数 image.GetFrameCount(FrameDimension.Page); 2.初始化当前页,并获取指定页内容 image.SelectActiveFr ...
- 查看Unix系统是32位还是64位
#getconf查看OS位数 以下经过测试了HP: getconf KERNEL_BITSLinux: getconf LONG_BITAIX: getconf KERNEL_BITMODE #AIX ...
- string和stringbuilder
1)String是一个引用类型,一旦字符串被创建,就不能修改 例如: String a="AAA"; String b=a; a与b值相同,但不是同一个对象: 每次使用 Syste ...
- (转)QRCODE二维码介绍及常用控件推荐
什么是QR Code码? QR Code码是由日本Denso公司于1994年9月研制的一种矩阵二维码符号,它具有一维条码及其它二维条码所具有的信息容量大.可靠性高.可表示汉字及图象多种文字信息.保密防 ...
- “Assign Random Colors” is not working in 3ds Max 2015
Go to Customize -> Preferences…-> General (tab) Uncheck “Default to By Layer for New Nodes”
- How to: Signing Installers You Create with Inno Setup
Original Link: http://revolution.screenstepslive.com/s/revolution/m/10695/l/95041-signing-installers ...
- QT 常用设置
博文都写在了云笔记里面了,见谅,不想维护两个版本. QT 常用设置