学下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. Linux的硬链接为何不能链接目录

    Linux中的目录文件是特殊的文件,其中的数据是一个关联列表的,像c++中的map,或者Python中的dict,保存每个文件名(包括子目录,Linux中一切皆文件!)到iNode的映射.iNode本 ...

  2. Latex 分段函数

    Latex里面分段函数的输入: \begin{equation}     P_{r-j}=    \begin{cases}    0&\mbox{if $r-j$ is odd}\\     ...

  3. windows系统调用 获取当前内存信息

    #include "iostream" #include "windows.h" #include "shlwapi.h" #include ...

  4. 从出租车司机到大BOSS的转型之路

    来深圳之前,曾有人这样告诉我:在深圳千万不能以貌取人,打扮不起眼,也许他转身开的座驾就是宝马.奔驰;不管一个人多么邋遢俗气,也别瞧不起人家,也许他的手提袋里就是成捆的人民币现金;不管一个人打扮的多么土 ...

  5. jquery判断起止时间大小和非空

    //时间判断 function CheckDate() { var startTime = $('#txtTime').val(); //获取当前日期 var start = new Date(sta ...

  6. Objective-C语言Foundation框架

    Mac OS X开发会使用Cocoa框架,它是一种支持应用程序提供丰富用户体验的框架,它实际上由:Foundation和Application Kit(AppKit)框架组成.iOS开发,会使用Coc ...

  7. VM arguments

    VM arguments -Xms256M -Xmx512M -XX:PermSize=256m -XX:MaxPermSize=512m

  8. asp.net 分页-自己写分页控件

    去年就发表过asp.net 分页-利用后台直接生成html分页 ,那种方法只是单纯的实现了分页,基本不能使用,那时就想写个自己的分页控件,无奈能力有限.最近有点时间了,就自己做出了这个分页控件.我承认 ...

  9. 【leetcode❤python】 414. Third Maximum Number

    #-*- coding: UTF-8 -*- #l1 = ['1','3','2','3','2','1','1']#l2 = sorted(sorted(set(l1),key=l1.index,r ...

  10. [issue] dyld`dyld_fatal_error: -> 0x120015088 <+0>: brk #0x3

    iOS "dyld`dyld_fatal_error: -> 0x12000d088 <+0>: brk #0x3"错误 根据上面的博客里的方法二 尝试解决方法二 ...