Java Java Java
学下java 的大数该怎么用><
hdu 1023 Train Problem II
求 卡特兰 数
诶...不记得卡特兰数的我眼泪掉下来
第一次用 java 大数 有点激动...><
1 import java.io.*; 2 import java.util.*; 3 import java.math.BigInteger; 4 5 public class test{ 6 public static void main(String args[]){ 7 BigInteger[] a = new BigInteger[101]; 8 a[0] = BigInteger.ZERO; 9 a[1] = BigInteger.ONE; 10 for(int i = 2;i <= 100;i++){ 11 BigInteger l = BigInteger.valueOf(4*i-2); 12 BigInteger r = BigInteger.valueOf(i+1); 13 a[i] = a[i-1].multiply(l); 14 a[i] = a[i].divide(r); 15 } 16 Scanner in = new Scanner(System.in); 17 int n; 18 while(in.hasNext()){ 19 n = in.nextInt(); 20 System.out.println(a[n]); 21 } 22 } 23 24 }
View Code
hdu 1063 Exponentiation
求小数 a 的 b 次方
stripTrailingZeros:去掉末尾0
toPlainStrin:将科学计数法表示正常写法
startWith:去掉首位0
subtring(x) :截取从 第 x 位往后的字符串
1 import java.io.*; 2 import java.util.*; 3 import java.math.BigDecimal; 4 import java.math.BigInteger; 5 6 public class test{ 7 public static void main(String args[]){ 8 Scanner in = new Scanner(System.in); 9 while(in.hasNext()){ 10 BigDecimal a = in.nextBigDecimal(); 11 int b = in.nextInt(); 12 String ans = a.pow(b).stripTrailingZeros().toPlainString(); 13 if(ans.startsWith("0")){ 14 ans = ans.substring(1); 15 } 16 System.out.println(ans); 17 } 18 } 19 20 }
View Code
不过看C++的都是 0 ms 过,java要跑 500多ms
hdu 1047 Integer Inquiry
大数相加
1 import java.io.*; 2 import java.util.*; 3 import java.math.BigDecimal; 4 import java.math.BigInteger; 5 6 public class Main{ 7 public static void main(String args[]){ 8 Scanner in = new Scanner(System.in); 9 int n = in.nextInt(); 10 while(n-- > 0){ 11 BigInteger ans = BigInteger.ZERO; 12 while(in.hasNext()){ 13 BigInteger tmp = BigInteger.ZERO; 14 tmp = in.nextBigInteger(); 15 BigInteger zero = BigInteger.valueOf(0); 16 if(!tmp.equals(zero)){ 17 ans = ans.add(tmp); 18 } 19 else{ 20 System.out.println(ans); 21 if(n != 0) System.out.println(""); 22 break; 23 } 24 } 25 } 26 } 27 }
View Code
hdu 1316 How Many Fibs?
统计大数区间里面的斐波那契数的个数
用到 一个 compareto
1 import java.io.*; 2 import java.util.*; 3 import java.math.BigDecimal; 4 import java.math.BigInteger; 5 6 public class Main{ 7 public static void main(String args[]){ 8 Scanner in = new Scanner(System.in); 9 BigInteger f[] = new BigInteger[505]; 10 BigInteger zero = BigInteger.ZERO; 11 f[1] = new BigInteger("1"); 12 f[2] = new BigInteger("2"); 13 for(int i = 3;i <= 500;i++) f[i] = f[i-1].add(f[i-2]); 14 15 while(in.hasNext()){ 16 BigInteger l = in.nextBigInteger(); 17 BigInteger r = in.nextBigInteger(); 18 if(l.compareTo(zero) == 0 && r.compareTo(zero) == 0) break; 19 int ans = 0; 20 for(int i = 1;i <= 500;i++){ 21 if(l.compareTo(f[i]) <= 0 && r.compareTo(f[i]) >= 0) ans++; 22 } 23 System.out.println(ans); 24 } 25 } 26 }
View Code
hdu 1753 大明A+B
大实数相加
1 import java.io.*; 2 import java.util.*; 3 import java.math.BigDecimal; 4 public class Main { 5 public static void main(String[] args) 6 { 7 Scanner in=new Scanner(System.in); 8 while (in.hasNext()) 9 { 10 BigDecimal a=in.nextBigDecimal(); 11 BigDecimal b=in.nextBigDecimal(); 12 a=a.add(b); 13 String s=a.stripTrailingZeros().toPlainString(); 14 // if (s.startsWith("0.")) 15 // s=s.substring(1); 16 System.out.println(s); 17 } 18 } 19 }
View Code
hdu 1261 字串数
大数阶乘,除法
1 import java.io.*; 2 import java.util.*; 3 import java.math.BigDecimal; 4 import java.math.BigInteger; 5 6 public class Main{ 7 public static void main(String args[]){ 8 Scanner in = new Scanner(System.in); 9 int[] a = new int[55]; 10 BigInteger[] f = new BigInteger[300]; 11 f[0] = BigInteger.ONE; 12 for(int i = 1;i < 300;i++) { 13 BigInteger tmp = BigInteger.valueOf(i); 14 f[i] = f[i-1].multiply(tmp); 15 } 16 int n; 17 while(in.hasNext()){ 18 n = in.nextInt(); 19 if(n == 0) break; 20 int x; 21 BigInteger fz ,fm; 22 fm = BigInteger.ONE; 23 int fzz = 0,fmm = 0; 24 for(int i = 1;i <= n;i++){ 25 a[i] = in.nextInt(); 26 fzz = fzz + a[i]; 27 fm = fm.multiply(f[a[i]]); 28 } 29 fz = f[fzz]; 30 //System.out.println(fz); 31 //System.out.println(fm); 32 BigInteger ans = fz.divide(fm); 33 System.out.println(ans); 34 } 35 } 36 }
View Code
java 板
1 //卡特兰数 2 import java.io.*; 3 import java.util.*; 4 import java.math.BigInteger; 5 6 public class test{ 7 public static void main(String args[]){ 8 BigInteger[] a = new BigInteger[101]; 9 a[0] = BigInteger.ZERO; 10 a[1] = BigInteger.ONE; 11 for(int i = 2;i <= 100;i++){ 12 BigInteger l = BigInteger.valueOf(4*i-2); 13 BigInteger r = BigInteger.valueOf(i+1); 14 a[i] = a[i-1].multiply(l); 15 a[i] = a[i].divide(r); 16 } 17 Scanner in = new Scanner(System.in); 18 int n; 19 while(in.hasNext()){ 20 n = in.nextInt(); 21 System.out.println(a[n]); 22 } 23 } 24 25 } 26 27 /*求小数 a 的 b 次方 28 stripTrailingZeros:去掉末尾0 29 toPlainStrin:将科学计数法表示正常写法 30 startWith:去掉首位0 31 subtring(x) :截取从 第 x 位往后的字符串*/ 32 33 import java.io.*; 34 import java.util.*; 35 import java.math.BigDecimal; 36 import java.math.BigInteger; 37 38 public class test{ 39 public static void main(String args[]){ 40 Scanner in = new Scanner(System.in); 41 while(in.hasNext()){ 42 BigDecimal a = in.nextBigDecimal(); 43 int b = in.nextInt(); 44 String ans = a.pow(b).stripTrailingZeros().toPlainString(); 45 if(ans.startsWith("0")){ 46 ans = ans.substring(1); 47 } 48 System.out.println(ans); 49 } 50 } 51 52 } 53 54 //大数相加 55 import java.io.*; 56 import java.util.*; 57 import java.math.BigDecimal; 58 import java.math.BigInteger; 59 60 public class Main{ 61 public static void main(String args[]){ 62 Scanner in = new Scanner(System.in); 63 int n = in.nextInt(); 64 while(n-- > 0){ 65 BigInteger ans = BigInteger.ZERO; 66 while(in.hasNext()){ 67 BigInteger tmp = BigInteger.ZERO; 68 tmp = in.nextBigInteger(); 69 BigInteger zero = BigInteger.valueOf(0); 70 if(!tmp.equals(zero)){ 71 ans = ans.add(tmp); 72 } 73 else{ 74 System.out.println(ans); 75 if(n != 0) System.out.println(""); 76 break; 77 } 78 } 79 } 80 } 81 } 82 83 //大实数相加 84 import java.io.*; 85 import java.util.*; 86 import java.math.BigDecimal; 87 public class Main { 88 public static void main(String[] args) 89 { 90 Scanner in=new Scanner(System.in); 91 while (in.hasNext()) 92 { 93 BigDecimal a=in.nextBigDecimal(); 94 BigDecimal b=in.nextBigDecimal(); 95 a=a.add(b); 96 String s=a.stripTrailingZeros().toPlainString(); 97 // if (s.startsWith("0.")) 98 // s=s.substring(1); 99 System.out.println(s); 100 } 101 } 102 } 103 104 //大数阶乘,除法 105 import java.io.*; 106 import java.util.*; 107 import java.math.BigDecimal; 108 import java.math.BigInteger; 109 110 public class Main{ 111 public static void main(String args[]){ 112 Scanner in = new Scanner(System.in); 113 int[] a = new int[55]; 114 BigInteger[] f = new BigInteger[300]; 115 f[0] = BigInteger.ONE; 116 for(int i = 1;i < 300;i++) { 117 BigInteger tmp = BigInteger.valueOf(i); 118 f[i] = f[i-1].multiply(tmp); 119 } 120 int n; 121 while(in.hasNext()){ 122 n = in.nextInt(); 123 if(n == 0) break; 124 int x; 125 BigInteger fz ,fm; 126 fm = BigInteger.ONE; 127 int fzz = 0,fmm = 0; 128 for(int i = 1;i <= n;i++){ 129 a[i] = in.nextInt(); 130 fzz = fzz + a[i]; 131 fm = fm.multiply(f[a[i]]); 132 } 133 fz = f[fzz]; 134 //System.out.println(fz); 135 //System.out.println(fm); 136 BigInteger ans = fz.divide(fm); 137 System.out.println(ans); 138 } 139 } 140 } 141 142 /*主类名字必须是Main 143 读一个整数: int n = cin.nextInt(); 144 读一个字符串:String s = cin.next(); 145 读一个浮点数:double t = cin.nextDouble(); 146 读一整行: String s = cin.nextLine(); 147 判断是否有下一个输入可以用 cin.hasNext() 或 cin.hasNextInt() 或 cin.hasNextDouble() 等 148 149 输出浮点数保留位数 150 DecimalFormat f = new DecimalFormat("#.00#"); 151 DecimalFormat g = new DecimalFormat("0.000"); 152 double a = 123.45678, b = 0.12; 153 System.out.println(f.format(a)); 154 System.out.println(f.format(b)); 155 System.out.println(g.format(b)); 156 157 大数的运算 158 BigInteger add(BigInteger other) 159 BigInteger subtract(BigInteger other) 160 BigInteger multiply(BigInteger other) 161 BigInteger divide(BigInteger other) 162 BigInteger mod(BigInteger other) 163 int compareTo(BigInteger other) 164 static BigInteger valueOf(long x) 165 166 输出直接用 System.out.println(a)*/ 167 168 StringBuffer 169 import java.io.*; 170 import java.util.*; 171 import java.text.*; 172 import java.math.BigDecimal; 173 import java.math.BigInteger; 174 175 public class test{ 176 public static void main(String args[]){ 177 //赋值 178 StringBuffer a = new StringBuffer();//初始化 179 StringBuffer b = new StringBuffer("abc"); 180 String c = "abc"; 181 StringBuffer d = new StringBuffer(c); 182 183 //在末尾加 184 StringBuffer e = new StringBuffer("abc"); 185 e.append(true); 186 187 //删除指定index 位置的字符 188 StringBuffer f = new StringBuffer("abc"); 189 f.deleteCharAt(1); 190 191 //删除指定区间的字符 192 StringBuffer g = new StringBuffer("abcdefghjjkl"); 193 g.delete(1,4); 194 195 //在index 位置插入字符串或者字符 196 StringBuffer h = new StringBuffer("huhhhuhuhuhhh"); 197 String tmp = "njjjjjjj"; 198 char ch = 'c'; 199 h.insert(4,ch); 200 h.insert(4,tmp); 201 202 //字符串反转 203 StringBuffer j = new StringBuffer("12345"); 204 j.reverse(); 205 206 //替换字符串 207 StringBuffer i = new StringBuffer("122222"); 208 i.replace(0, 3, "ab");//左闭右开 209 210 //子串 211 StringBuffer kk = new StringBuffer("1234567"); 212 String kk1 = kk.substring(2);//返回下标开始以后的字符串 213 String kk2 = kk.substring(2,4);//l 到 r-1的字符串 214 System.out.println(kk1); 215 System.out.println(kk2); 216 } 217 }
View Code
转载于:https://www.cnblogs.com/wuyuewoniu/p/5922196.html
Java Java Java相关推荐
- java unlimited_具有无限参数的Java方法(Java method with unlimited arguments)
具有无限参数的Java方法(Java method with unlimited arguments) Spring框架使用方法,您可以根据需要传递尽可能多的参数. 我想写一个函数,也可以采取无限量的 ...
- 介绍java -cp java -jar的区别
java -cp 和 -classpath 一样,是指定类运行所依赖其他类的路径,通常是类库,jar包之类,需要全路径到jar包,window上分号";" java -cp &am ...
- 【Java】Java连接Mysql数据库的demo示例
[Java]Java连接Mysql数据库的demo示例 1.安装mysql数据库 2.下载java-mysql-connector.jar包 3.完成java配置 4.写java代码运行测试 1.安装 ...
- java抓取网页标题内容_[Java教程]java 网页页面抓取标题和正文
[Java教程]java 网页页面抓取标题和正文 0 2014-07-10 09:01:30 import java.io.BufferedReader;import java.io.IOExcept ...
- Java基础-Java中的堆内存和离堆内存机制
Java基础-Java中的堆内存和离堆内存机制 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 转载于:https://www.cnblogs.com/yinzhengjie/p/9 ...
- Java 异常java.lang.IllegalArgumentException: Illegal group reference
Java 异常java.lang.IllegalArgumentException: Illegal group reference 参考文章: (1)Java 异常java.lang.Illegal ...
- Java基础-JAVA中常见的数据结构介绍
Java基础-JAVA中常见的数据结构介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.什么是数据结构 答:数据结构是指数据存储的组织方式.大致上分为线性表.栈(Stack) ...
- 4.6 W 字总结!Java 11—Java 17特性详解
作者 | 民工哥技术之路 来源 | https://mp.weixin.qq.com/s/SVleHYFQeePNT7q67UoL4Q Java 11 特性详解 基于嵌套的访问控制 与 Java 语言 ...
- 做了6年的Java,java视频教程传智播客
JAVA基础 JAVA异常分类及处理 异常分类 异常的处理方式 Throw和throws的区别 JAVA反射 动态语言 反射机制概念 (运行状态中知道类所有的属性和方法) Java反射API 反射使用 ...
- java demo在哪里下载_[Java教程]Java学习 (一)、下载,配置环境变量,第一个demo...
[Java教程]Java学习 (一).下载,配置环境变量,第一个demo 0 2016-03-01 22:00:18 一.在 http://www.oracle.com 下载java JDK 安装到自 ...
最新文章
- Week02-Java基本语法与类库
- 关于SpringMVC和Struts2的区别
- zkcli远程连接_ZooKeeper 学习笔记(二)-API 操作和应用
- DbHelper数据库通用类使用方法
- vice versa VS the other way around
- ASP.NET前台html页面AJAX提交数据后台ashx页面接收数据
- 微信开发——带参数二维码的使用
- python中∧_python中xor是什么意思
- 梦断代码读后感(二)
- 试卷生成系统安装与卸载
- FIR滤波器和IIR滤波器
- Symantec的SEP服务器(SEPM)从12.1 RU6MP5 升级到14 MP1 操作手册
- 辞职信微信html,女教师辞职信走红微信背后:“走心”
- Windows10快捷键合集
- Ardupilot 绕圈模式分析
- Java_[倒置字符串]将一句话的单词进行倒置,标点不倒置。
- 什么能吃,什么不能吃
- 网易视频云: 网易平台级视频服务存储技术
- Qt项目中,绘制只有两个圆角的矩形及QPainterPath类的应用
- python关于二手房的课程论文_python二手房项目分析
热门文章
- python I/O 对象
- mysql sql sysdate_MySQL与Oracle SQL语言差异比较一览
- Windows server WSUS补丁服务器搭建(转)
- Kubernetes学习总结(5)——Kubernetes 常见面试题汇总
- 为什么要重构,何时进行重构
- 源码解读_入口开始解读Vue源码系列(二)——new Vue 的故事
- node.js发送html,利用Node.JS实现邮件发送功能
- java中的step_Java中finalize()
- Python入门之PyCharm中目录directory与包package的区别
- 企业分布式微服务云SpringCloud SpringBoot mybatis (二)服务消费者(rest+ribbon)