JAVA 大数在acm中的应用
来源:互联网 发布:淘宝全球购可以退货吗 编辑:程序博客网 时间:2024/05/17 18:11
对于经常用c及c++编程进行acm竞赛的弱菜来说,写一道f大数题,是比较麻烦的,然而这对于用java来写来写,却是小菜一碟,
于是我就在网上找了并整理一下java对于大数方面的应用,虽然这对于java强手来说,是有点大材小用的feel ,不过对于我们来说,这却是福音,hahaha......
1.首先,需要的头文件:
import java.math.*; // 包含大数类的包 import java.util.*; // 包含输入头的包
2.然后一个java程序的主体应该是这样:
public class Main{ public static void main(String args[]){ Scanner cin = newScanner(System.in); // 输入必备句 }}
while(n-->0) // 等价 while(n--) n减到0
EOF:用法
普通的数: while(cin.hasNextInt()) //等同于!=EOF,第一数一定要输入整形的
大数的一般是:while(cin.hasNextBigInteger()) //第一个数一定要输入大数
System.out.print(m.toString()); // m.toString() 将m转为String 类
System.out.print(n); // 输出n
System.out.println(n);// 输出n并换行
System.out.println("Case#"+(t++)+":"+" "+c.toString(2)); //t为int c为大数 输出时字符与字符之间用+隔开 字符与字符之间有数据 在数据两边都加上+
换行符 System.out.print("\n");或 System.out.println();
输出空格 System.out.print(" ");
4.下面集合了很多大数的用法:
运算类:
//d为int型,a,b,c都为大数c=a.add(b); // 相加c=a.subtract(b); // 相减c=a.multiply(b); // 相乘c=a.divide(b); // 相除取整c=a.gcd(b); // 最大公约数c=a.remainder(b); // 取余c=a.mod(b); // a mod bc=a.abs(); // a的绝对值c=a.negate(); // a的相反数c=a.pow(d); // a的b次幂 d为int型 c=a.max(b); // 取a,b中较大的c=a.min(b); // 取a,b中较小的d=a.compareTo(b); // 比较a与b的大小 d=-1小于 d=0等于 d=1大于 d为int型a.equals(b); // 判断a与b是否相等 相等返回true 不相等返回false
5.类型转换类:
d=a.intValue(); // 将大数a转换为 int 类型赋值给 de=a.longValue(); // 将大数a转换为 long 类型赋值给 ef=a.floatValue(); // 将大数a转换为 float 类型赋值给 fg=a.doubleValue(); // 将大数a转换为 double 类型赋值给 gs=a.toString(); // 将大数a转换为 String 类型赋值给 s<span style="color:#ff0000;">s=a.toPlainString(); //将大数a转换为String类型赋值给s,且不表示为科学计数法</span>a=BigInteger.valueOf(e); // 将 e 以大数形式赋值给大数 a e只能为long或inta=newBigInteger(s, d); // 将s数字字符串以d进制赋值给大数a如果d=s字符数字的进制则等同于将数字字符串以大数形式赋值给大数a
6.进制转换类
String st = Integer.toString(num, base); //把int型num当10进制的数转成base进制数存入st中 (base <= 35).int num = Integer.parseInt(st, base); //把st当做base进制,转成10进制的int(parseInt有两个参数,第一个为要转的字符串,第二个为说明是什么进制). BigInter m = new BigInteger(st, base); // st是字符串,base是st的进制.BigInteger a;int b;Stringc;a=cin.nextBigInteger(b); //以b进制读入一个大数赋值给ac=a.toString(b); // 将大数a以b进制的方式赋给字符串ca=newBigInteger(c, b); //把c 当做“b进制“转为十进制大数赋值给a
暂时就到这儿吧,以后发现了新的且有用的东西会继续写上去的
- JAVA 大数在acm中的应用
- java大数类在acm中的应用
- JAVA 大数在acm中的应用(2)
- JAVA大数在ACM中应用
- java在acm中的应用
- Java在ACM中的应用
- java在ACM中的应用
- java在ACM中的应用
- java在ACM中的应用
- Java在ACM中的应用
- JAVA在ACM中的应用
- Java中的BigInteger在ACM中的应用
- java 在 ACM 中的应用 (转帖)
- JAVA在ACM中的几点应用
- java在ACM中的应用(转载)
- java在ACM中的一些应用
- JAVA在ACM中的几点应用
- java在acm中的一些应用
- 操作系统--存储管理的任务
- python虚拟环境的使用
- 玩转 IOS 开发 - block 使用详解
- 欢迎使用CSDN-markdown编辑器
- 2015-06-05
- JAVA 大数在acm中的应用
- 多项式相加
- 44.将一个数各个偶数位取出,并从低位往高位输出
- Base64 Base32 Base16全家桶
- mysql 并行数据库与分区(Partition)
- OpenCSP开源程序解析之OPENCSP_Hash.cpp
- WriteableBitmap/BitmapImage/MemoryStream/byte[]相互转换
- 第二十篇 人生中的突破口
- 多线程面试秒杀系列6--临界区函数的使用