学下java 的大数该怎么用><

hdu 1023 Train Problem II

求 卡特兰 数

诶...不记得卡特兰数的我眼泪掉下来

第一次用 java 大数 有点激动...><

 import java.io.*;
import java.util.*;
import java.math.BigInteger; public class test{
public static void main(String args[]){
BigInteger[] a = new BigInteger[];
a[] = BigInteger.ZERO;
a[] = BigInteger.ONE;
for(int i = ;i <= ;i++){
BigInteger l = BigInteger.valueOf(*i-);
BigInteger r = BigInteger.valueOf(i+);
a[i] = a[i-].multiply(l);
a[i] = a[i].divide(r);
}
Scanner in = new Scanner(System.in);
int n;
while(in.hasNext()){
n = in.nextInt();
System.out.println(a[n]);
}
} }

hdu 1063 Exponentiation

求小数 a 的 b 次方

stripTrailingZeros:去掉末尾0

toPlainStrin:将科学计数法表示正常写法

startWith:去掉首位0

subtring(x) :截取从 第 x 位往后的字符串

 import java.io.*;
import java.util.*;
import java.math.BigDecimal;
import java.math.BigInteger; public class test{
public static void main(String args[]){
Scanner in = new Scanner(System.in);
while(in.hasNext()){
BigDecimal a = in.nextBigDecimal();
int b = in.nextInt();
String ans = a.pow(b).stripTrailingZeros().toPlainString();
if(ans.startsWith("")){
ans = ans.substring();
}
System.out.println(ans);
}
} }

不过看C++的都是 0 ms 过,java要跑 500多ms

hdu 1047 Integer Inquiry

大数相加

 import java.io.*;
import java.util.*;
import java.math.BigDecimal;
import java.math.BigInteger; public class Main{
public static void main(String args[]){
Scanner in = new Scanner(System.in);
int n = in.nextInt();
while(n-- > ){
BigInteger ans = BigInteger.ZERO;
while(in.hasNext()){
BigInteger tmp = BigInteger.ZERO;
tmp = in.nextBigInteger();
BigInteger zero = BigInteger.valueOf();
if(!tmp.equals(zero)){
ans = ans.add(tmp);
}
else{
System.out.println(ans);
if(n != ) System.out.println("");
break;
}
}
}
}
}

hdu 1316 How Many Fibs?

统计大数区间里面的斐波那契数的个数

用到 一个 compareto

 import java.io.*;
import java.util.*;
import java.math.BigDecimal;
import java.math.BigInteger; public class Main{
public static void main(String args[]){
Scanner in = new Scanner(System.in);
BigInteger f[] = new BigInteger[];
BigInteger zero = BigInteger.ZERO;
f[] = new BigInteger("");
f[] = new BigInteger("");
for(int i = ;i <= ;i++) f[i] = f[i-].add(f[i-]); while(in.hasNext()){
BigInteger l = in.nextBigInteger();
BigInteger r = in.nextBigInteger();
if(l.compareTo(zero) == && r.compareTo(zero) == ) break;
int ans = ;
for(int i = ;i <= ;i++){
if(l.compareTo(f[i]) <= && r.compareTo(f[i]) >= ) ans++;
}
System.out.println(ans);
}
}
}

hdu 1753 大明A+B

大实数相加

 import java.io.*;
import java.util.*;
import java.math.BigDecimal;
public class Main {
public static void main(String[] args)
{
Scanner in=new Scanner(System.in);
while (in.hasNext())
{
BigDecimal a=in.nextBigDecimal();
BigDecimal b=in.nextBigDecimal();
a=a.add(b);
String s=a.stripTrailingZeros().toPlainString();
// if (s.startsWith("0."))
// s=s.substring(1);
System.out.println(s);
}
}
}

hdu 1261 字串数

大数阶乘,除法

 import java.io.*;
import java.util.*;
import java.math.BigDecimal;
import java.math.BigInteger; public class Main{
public static void main(String args[]){
Scanner in = new Scanner(System.in);
int[] a = new int[];
BigInteger[] f = new BigInteger[];
f[] = BigInteger.ONE;
for(int i = ;i < ;i++) {
BigInteger tmp = BigInteger.valueOf(i);
f[i] = f[i-].multiply(tmp);
}
int n;
while(in.hasNext()){
n = in.nextInt();
if(n == ) break;
int x;
BigInteger fz ,fm;
fm = BigInteger.ONE;
int fzz = ,fmm = ;
for(int i = ;i <= n;i++){
a[i] = in.nextInt();
fzz = fzz + a[i];
fm = fm.multiply(f[a[i]]);
}
fz = f[fzz];
//System.out.println(fz);
//System.out.println(fm);
BigInteger ans = fz.divide(fm);
System.out.println(ans);
}
}
}

java 板

 //卡特兰数
import java.io.*;
import java.util.*;
import java.math.BigInteger; public class test{
public static void main(String args[]){
BigInteger[] a = new BigInteger[];
a[] = BigInteger.ZERO;
a[] = BigInteger.ONE;
for(int i = ;i <= ;i++){
BigInteger l = BigInteger.valueOf(*i-);
BigInteger r = BigInteger.valueOf(i+);
a[i] = a[i-].multiply(l);
a[i] = a[i].divide(r);
}
Scanner in = new Scanner(System.in);
int n;
while(in.hasNext()){
n = in.nextInt();
System.out.println(a[n]);
}
} } /*求小数 a 的 b 次方
stripTrailingZeros:去掉末尾0
toPlainStrin:将科学计数法表示正常写法
startWith:去掉首位0
subtring(x) :截取从 第 x 位往后的字符串*/ import java.io.*;
import java.util.*;
import java.math.BigDecimal;
import java.math.BigInteger; public class test{
public static void main(String args[]){
Scanner in = new Scanner(System.in);
while(in.hasNext()){
BigDecimal a = in.nextBigDecimal();
int b = in.nextInt();
String ans = a.pow(b).stripTrailingZeros().toPlainString();
if(ans.startsWith("")){
ans = ans.substring();
}
System.out.println(ans);
}
} } //大数相加
import java.io.*;
import java.util.*;
import java.math.BigDecimal;
import java.math.BigInteger; public class Main{
public static void main(String args[]){
Scanner in = new Scanner(System.in);
int n = in.nextInt();
while(n-- > ){
BigInteger ans = BigInteger.ZERO;
while(in.hasNext()){
BigInteger tmp = BigInteger.ZERO;
tmp = in.nextBigInteger();
BigInteger zero = BigInteger.valueOf();
if(!tmp.equals(zero)){
ans = ans.add(tmp);
}
else{
System.out.println(ans);
if(n != ) System.out.println("");
break;
}
}
}
}
} //大实数相加
import java.io.*;
import java.util.*;
import java.math.BigDecimal;
public class Main {
public static void main(String[] args)
{
Scanner in=new Scanner(System.in);
while (in.hasNext())
{
BigDecimal a=in.nextBigDecimal();
BigDecimal b=in.nextBigDecimal();
a=a.add(b);
String s=a.stripTrailingZeros().toPlainString();
// if (s.startsWith("0."))
// s=s.substring(1);
System.out.println(s);
}
}
} //大数阶乘,除法
import java.io.*;
import java.util.*;
import java.math.BigDecimal;
import java.math.BigInteger; public class Main{
public static void main(String args[]){
Scanner in = new Scanner(System.in);
int[] a = new int[];
BigInteger[] f = new BigInteger[];
f[] = BigInteger.ONE;
for(int i = ;i < ;i++) {
BigInteger tmp = BigInteger.valueOf(i);
f[i] = f[i-].multiply(tmp);
}
int n;
while(in.hasNext()){
n = in.nextInt();
if(n == ) break;
int x;
BigInteger fz ,fm;
fm = BigInteger.ONE;
int fzz = ,fmm = ;
for(int i = ;i <= n;i++){
a[i] = in.nextInt();
fzz = fzz + a[i];
fm = fm.multiply(f[a[i]]);
}
fz = f[fzz];
//System.out.println(fz);
//System.out.println(fm);
BigInteger ans = fz.divide(fm);
System.out.println(ans);
}
}
} /*主类名字必须是Main
读一个整数: int n = cin.nextInt();
读一个字符串:String s = cin.next();
读一个浮点数:double t = cin.nextDouble();
读一整行: String s = cin.nextLine();
判断是否有下一个输入可以用 cin.hasNext() 或 cin.hasNextInt() 或 cin.hasNextDouble() 等 输出浮点数保留位数
DecimalFormat f = new DecimalFormat("#.00#");
DecimalFormat g = new DecimalFormat("0.000");
double a = 123.45678, b = 0.12;
System.out.println(f.format(a));
System.out.println(f.format(b));
System.out.println(g.format(b)); 大数的运算
BigInteger add(BigInteger other)
BigInteger subtract(BigInteger other)
BigInteger multiply(BigInteger other)
BigInteger divide(BigInteger other)
BigInteger mod(BigInteger other)
int compareTo(BigInteger other)
static BigInteger valueOf(long x) 输出直接用 System.out.println(a)*/ StringBuffer
import java.io.*;
import java.util.*;
import java.text.*;
import java.math.BigDecimal;
import java.math.BigInteger; public class test{
public static void main(String args[]){
//赋值
StringBuffer a = new StringBuffer();//初始化
StringBuffer b = new StringBuffer("abc");
String c = "abc";
StringBuffer d = new StringBuffer(c); //在末尾加
StringBuffer e = new StringBuffer("abc");
e.append(true); //删除指定index 位置的字符
StringBuffer f = new StringBuffer("abc");
f.deleteCharAt(); //删除指定区间的字符
StringBuffer g = new StringBuffer("abcdefghjjkl");
g.delete(,); //在index 位置插入字符串或者字符
StringBuffer h = new StringBuffer("huhhhuhuhuhhh");
String tmp = "njjjjjjj";
char ch = 'c';
h.insert(,ch);
h.insert(,tmp); //字符串反转
StringBuffer j = new StringBuffer("");
j.reverse(); //替换字符串
StringBuffer i = new StringBuffer("");
i.replace(, , "ab");//左闭右开 //子串
StringBuffer kk = new StringBuffer("");
String kk1 = kk.substring();//返回下标开始以后的字符串
String kk2 = kk.substring(,);//l 到 r-1的字符串
System.out.println(kk1);
System.out.println(kk2);
}
}

最新文章

  1. jQuery:实现两个&lt;select&gt;控件的互移操作
  2. spi子系统之驱动SSD1306 OLED
  3. 第一个JAVA应用
  4. python---psutil
  5. Android——BitMap(位图)相关知识总结贴
  6. sizeof运算符
  7. php 统计在线人数,今日访问量,总访问量
  8. jquery.cycle.js简单用法实例
  9. redis修改的源代码zincrby,hincrby命令
  10. 分析DuxCms之AdminUserModel
  11. Thread中的join()方法
  12. cmd 命令添加防火墙端口
  13. ASP.net教程]启用WebApi 2里的Api描述信息(Help下的Description
  14. Win7命令行编译cuda及设置Windows显卡响应时间
  15. 红帽7中firewall常用指令
  16. C语言:逻辑推理
  17. HTML5标签canvas制作平面图
  18. webapp的优化总结
  19. RabbitMQ学习以及与Spring的集成(二)
  20. RDD转换成DataFrames

热门文章

  1. [原创]java WEB学习笔记99:Spring学习---Spring Bean配置:自动装配,配置bean之间的关系(继承/依赖),bean的作用域(singleton,prototype,web环境作用域),使用外部属性文件
  2. 提高Oracle的WHERE语句性能一些原则
  3. Centos6.5 安装 RabbitMQ3.6.1
  4. 《Unix网络编程》卷一(简介TCP/IP、基础套接字编程)
  5. easyui DataGrid 工具类之 Utils class
  6. Linux常用命令(三)
  7. Unity在编辑器状态下清空控制台信息
  8. javscript 中的术语和俚语
  9. python 学习笔记十三 JQuery(进阶篇)
  10. GMF中,删除节点和连线的另一种实现