学下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);
}
}

Java Java Java的更多相关文章

  1. [Java面经]干货整理, Java面试题(覆盖Java基础,Java高级,JavaEE,数据库,设计模式等)

    如若转载请注明出处: http://www.cnblogs.com/wang-meng/p/5898837.html   谢谢.上一篇发了一个找工作的面经, 找工作不宜, 希望这一篇的内容能够帮助到大 ...

  2. Java基础-输入输出-3.编写BinIoDemo.java的Java应用程序,程序完成的功能是:完成1.doc文件的复制,复制以后的文件的名称为自己的学号姓名.doc。

    3.编写BinIoDemo.java的Java应用程序,程序完成的功能是:完成1.doc文件的复制,复制以后的文件的名称为自己的学号姓名.doc. try { FileInputStream in = ...

  3. Java基础-输入输出-2.编写IoDemo.java的Java应用程序,程序完成的功能是:首先读取text.txt文件内容,再通过键盘输入文件的名称为iodemo.txt,把text.txt的内容存入iodemo.txt

    2.编写IoDemo.java的Java应用程序,程序完成的功能是:首先读取text.txt文件内容,再通过键盘输入文件的名称为iodemo.txt,把text.txt的内容存入iodemo.txt ...

  4. JAVA基础-输入输出:1.编写TextRw.java的Java应用程序,程序完成的功能是:首先向TextRw.txt中写入自己的学号和姓名,读取TextRw.txt中信息并将其显示在屏幕上。

    1.编写TextRw.java的Java应用程序,程序完成的功能是:首先向TextRw.txt中写入自己的学号和姓名,读取TextRw.txt中信息并将其显示在屏幕上. package Test03; ...

  5. java视频教程 Java自学视频整理(持续更新中...)

    视频教程,马士兵java视频教程,java视频 1.Java基础视频 <张孝祥JAVA视频教程>完整版[RMVB](东西网) 历经5年锤炼(史上最适合初学者入门的Java基础视频)(传智播 ...

  6. 深入Java核心 Java内存分配原理精讲

    深入Java核心 Java内存分配原理精讲 栈.堆.常量池虽同属Java内存分配时操作的区域,但其适用范围和功用却大不相同.本文将深入Java核心,详细讲解Java内存分配方面的知识. Java内存分 ...

  7. java初探/java读取文件

    import java.io.*; import java.util.Arrays; public class WriteText { public static void main(String[] ...

  8. java基础---->java中正则表达式二

    跟正则表达式相关的类有:Pattern.Matcher和String.今天我们就开始Java中正则表达式的学习. Pattern和Matcher的理解 一.正则表达式的使用方法 一般推荐使用的方式如下 ...

  9. java高级---->Java动态代理的原理

    Java动态代理机制的出现,使得 Java 开发人员不用手工编写代理类,只要简单地指定一组接口及委托类对象,便能动态地获得代理类.代理类会负责将所有的方法调用分派到委托对象上反射执行,在分派执行的过程 ...

  10. CentOS安装JAVA后JAVA版本不对的问题

    今天用CentOS安装JDK,发觉在安装完成后,输入java命令来验证是否安装成功时,出现 Usage: gij [OPTION] ... CLASS [ARGS] ...          to i ...

随机推荐

  1. 向ES6看齐,用更好的JavaScript(三)

    本文是ES6系列的第三篇,主要介绍ES6新增的数据类型.数据结构,先上传送门: 1 变量部分 2 现有对象拓展 3 新增数据类型/数据结构 4 新的异步编程模式 5 类和模块 1 第七种数据类型Sym ...

  2. Js原生 双向数据绑定

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. zjuoj 3605 Find the Marble

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3605 Find the Marble Time Limit: 2 Seco ...

  4. Web应用程序项目以配置使用IIS。未找到Web服务器

    解决办法 右键编辑该Web项目的csproj文件 把UserIIS改为False.或者在IIS服务器里面配置一个IISUrl里面的地址 如图

  5. python学习笔记系列----(一)python简介

    一个月前,就按下决心要系统的学习下python了,虽然之前有学习过java,学习过c++,也能较为熟练的使用java做自动化测试看懂c++里的业务逻辑,但是实际上有那么多的东西自己还是不清楚,今天下定 ...

  6. bitcask

    Bitcask模型是一种日志型kv模型.所谓日志型,是指它不直接支持随机写入,而是像日志一样支持追加操作.Bitcask模型将随机写入转化为顺序写入. 任意时刻,系统中只有一个数据文件支持写入,称为a ...

  7. ipcs命令

    unix/linux下的共享内存.信号量.队列信息管理 在unix/linux下,经常有因为共享内存.信号量,队列等共享信息没有干净地清楚而引起一些问题. 查看共享信息的内存的命令是ipcs [-m| ...

  8. ALLOCATE语句分配FORTRAN动态数组方法(转自http://blog.csdn.net/zhuxianjianqi/article/details/8067174)

    数组的动态分配 a)    可分配数组 数组可以是静态的也可以是动态的.如果数组是静态的,则在编译时就被分配了固定的储存空间,并且直到程序退出时才被释放.程序运行时静态数组的大小不能改变.静态数组的缺 ...

  9. python学习笔记六 面向对象相关下(基础篇)

    面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使用(可以将多函数中公用的变量封装到对象中) 对象,根据模板创建的 ...

  10. R之data.table -melt/dcast(数据合并和拆分)

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 30.0px "Helvetica Neue"; color: #323333 } p. ...