Java Java Java
学下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的更多相关文章
- [Java面经]干货整理, Java面试题(覆盖Java基础,Java高级,JavaEE,数据库,设计模式等)
如若转载请注明出处: http://www.cnblogs.com/wang-meng/p/5898837.html 谢谢.上一篇发了一个找工作的面经, 找工作不宜, 希望这一篇的内容能够帮助到大 ...
- Java基础-输入输出-3.编写BinIoDemo.java的Java应用程序,程序完成的功能是:完成1.doc文件的复制,复制以后的文件的名称为自己的学号姓名.doc。
3.编写BinIoDemo.java的Java应用程序,程序完成的功能是:完成1.doc文件的复制,复制以后的文件的名称为自己的学号姓名.doc. try { FileInputStream in = ...
- 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 ...
- JAVA基础-输入输出:1.编写TextRw.java的Java应用程序,程序完成的功能是:首先向TextRw.txt中写入自己的学号和姓名,读取TextRw.txt中信息并将其显示在屏幕上。
1.编写TextRw.java的Java应用程序,程序完成的功能是:首先向TextRw.txt中写入自己的学号和姓名,读取TextRw.txt中信息并将其显示在屏幕上. package Test03; ...
- java视频教程 Java自学视频整理(持续更新中...)
视频教程,马士兵java视频教程,java视频 1.Java基础视频 <张孝祥JAVA视频教程>完整版[RMVB](东西网) 历经5年锤炼(史上最适合初学者入门的Java基础视频)(传智播 ...
- 深入Java核心 Java内存分配原理精讲
深入Java核心 Java内存分配原理精讲 栈.堆.常量池虽同属Java内存分配时操作的区域,但其适用范围和功用却大不相同.本文将深入Java核心,详细讲解Java内存分配方面的知识. Java内存分 ...
- java初探/java读取文件
import java.io.*; import java.util.Arrays; public class WriteText { public static void main(String[] ...
- java基础---->java中正则表达式二
跟正则表达式相关的类有:Pattern.Matcher和String.今天我们就开始Java中正则表达式的学习. Pattern和Matcher的理解 一.正则表达式的使用方法 一般推荐使用的方式如下 ...
- java高级---->Java动态代理的原理
Java动态代理机制的出现,使得 Java 开发人员不用手工编写代理类,只要简单地指定一组接口及委托类对象,便能动态地获得代理类.代理类会负责将所有的方法调用分派到委托对象上反射执行,在分派执行的过程 ...
- CentOS安装JAVA后JAVA版本不对的问题
今天用CentOS安装JDK,发觉在安装完成后,输入java命令来验证是否安装成功时,出现 Usage: gij [OPTION] ... CLASS [ARGS] ... to i ...
随机推荐
- ios--时间格式化(cell业务逻辑处理)
一.点击更多按钮 1.项目需求 点击更多按钮,从底部弹出一个框 2.怎么从底部弹出一个框? 两种方法: 一种用 UIActionShee ...
- MySql 首记
1.连接数据: 格式是: -P 端口号 -h mysql主机名\ip -u root (用户) -p 2.显示数据库: show databases; 3.选择数据库: use databas ...
- .net mvc onexception capture; redirectresult;
need to set filtercontext.result=new redirectresult('linkcustompage'); done. so... ASP.NET MVC异常处理模块 ...
- STL之优先队列(1)
优先队列用法 在优先队列中,优先级高的元素先出队列. 标准库默认使用元素类型的<操作符来确定它们之间的优先级关系. 优先队列的第一种用法: 也是最常用的用法 priority_queue< ...
- Java集合---ArrayList的实现原理
目录: 一. ArrayList概述 二. ArrayList的实现 1) 私有属性 2) 构造方法 3) 元素存储 4) 元素读取 5) 元素删除 6) 调整数组容量 ...
- pageX,clientX,screenX,offsetX的区别
pageX/pageY: 鼠标相对于整个页面的X/Y坐标,但IE不支持.以body元素为参考点. clientX/clientY: 鼠标在浏览器内容区域的X/Y坐标,不包含滚动条,即需要滚动条的地方不 ...
- 一. HTML认识
1.1认识什么是纯文本文件txt window自带有一个软件,叫做记事本,记事本保存的格式就是TXT,就是英文text的缩写,术语上称呼为"纯文本文件. TXT文件,只能保存文本内容,是无法 ...
- Shader的自定义特性使用
使用自定义特性关键字,可以动态对Shader某一部分代码进行开关操作 shader(定义了KEYWORD1特性): 定义:#pragma shader_feature KEYWORD1 判断:#ifd ...
- Python对整形数字进行加密和解密
# -*- coding:utf-8 -*- __author__ = 'Ray' class Encryption: """整形数字简单的一个加密/解密算法" ...
- Android ToolBar
众所周知,在使用ActionBar的时候,一堆的问题:这个文字能不能定制,位置能不能改变,图标的间距怎么控制神马的,由此暴露出了ActionBar设计的不灵活.为此官方提供了ToolBar,并且提供了 ...