大数问题-----ACM中java的入门使用
hdu1002 经典a+b
计算大数问题 一直知道大数用java计算很方便 但是一直没有去学,还是太懒了 唉 ~~T_T
先贴代码,后边会说一些简单的入门知识和注意事项
hdu1002
//package hdu1133大数;import java.io.*;
import java.util.*;
import java.math.*;
public class Main {public static void main(String[] args) {// TODO Auto-generated method stubScanner cin = new Scanner(new BufferedInputStream(System.in));int T;T=cin.nextInt();BigInteger a,b;for(int i=1;i<=T;i++){a=cin.nextBigInteger();b=cin.nextBigInteger();System.out.println("Case"+" "+i+":");if(i<T){System.out.println(a+" + "+b+" = "+a.add(b));System.out.println();} else{System.out.println(a+" + "+b+" = "+a.add(b));}}}}
注意:使用java提交acm题目
用Java交题时只需要粘贴包里面的内容,包名不需要。提交题目时类名一定要是 Main,不然判题系统是不认识。
下面说一些入门语法
首先,输入用Scanner类,包含在util包中;
可以 Scanner cin = new Scanner(System.in);
也可以 Scanner cin = new Scanner(new BufferedInputStream(System.in));
第二种 更快一些
import java.io.*
import java.util.* public class Main
{ public static void main(String args[]) { Scanner cin = new Scanner(new BufferedInputStream(System.in)); int T;T=cin.nextInt();//输入T....}
}
其他输入
读一个整数: int n = cin.nextInt(); 相当于 scanf(“%d”, &n); 或 cin >> n;
读一个字符串:String s = cin.next(); 相当于 scanf(“%s”, s); 或 cin >> s;
读一个浮点数:double t = cin.nextDouble(); 相当于 scanf(“%lf”, &t); 或 cin >> t;
读一整行: String s = cin.nextLine(); 相当于 gets(s); 或 cin.getline(…);
判断是否有下一个输入可以用 cin.hasNext() 或 cin.hasNextInt() 或 cin.hasNextDouble() 等
while(cin.hasNext()) //等同于!=EOF
输出
输出一般直接用 System.out.print() 输出不带换行
和 System.out.println() 输出带换行。
import java.io.*
import java.util.* public class Main
{ public static void main(String args[]) { System.out.println("Hello world!");//输出Hello world! 然后换行}
}
valueOf(),可将数据转换为指定类型:
比如:
int a = 3;
BigInteger b = BigInteger.valueOf(a);
//即b = 3;(int)
申请数组:
import java.io.*;
import java.util.*;
import java.math.*;public class Main {public static void main(String[] args) {Scanner cin = new Scanner(new BufferedInputStream(System.in));int n;n=cin.nextInt();int[] arr=new int[n];for(int i=0;i<n;i++){arr[i]=i;}for(int i=0;i<n;i++){System.out.println(arr[i]);}cin.close();}
}
基础的运算:
add();// 加法
substract(); //减法
multiply(); //乘法
divided(); //相除取整
remainder(); //取余
pow(); //a.pow(b) = a ^ b
gcd(); //最大公约数
abs(); //绝对
negate(); //取反数
mod(); //a.mod(b) = a % b = a.remainder(b)
max(); min(); //最大最小
compareTo(); //比较
equals(); //比较是否相等
大数问题
Java中两个类BigDecimal(表示浮点数)和BigInteger(表示整数);
分别表示不可变的任意精度的整数和不可变的有符号的任意精度的十进制数(浮点数)。
主要用于高精度计算中。这两个类使得java中的大数,高精度运算变得很简单。
使用时注意每个单词首字母大写~新手很容易犯这个错/(ㄒoㄒ)/~~
使用这两个类的时候需要加上包 import java.math.*;
或是直接打
import java.math.BigInteger;
import java.math.BigDecimal;
声明
BigInteger a; BigDecimal b;
声明&&赋值 BigDecimal a=new BigDecimal("0");
赋值:
A=BigInteger.ONE //=1
B=BigInteger.TEN //=10
C=BigInteger.ZERO //=0
等价于:
BigInteger A = BigInteger.valueOf(1);
BigInteger B = BigInteger.valueOf(10);
BigInteger C = BigInteger.valueOf(0);
a+b 浮点数时候的写法
import java.util.*;
import java.math.*;public class Main{public static void main(String []args){BigDecimal a;BigDecimal b;a=new BigDecimal("0");b=new BigDecimal("0");Scanner cin=new Scanner(System.in);while(cin.hasNext()){a=cin.nextBigDecimal();b=cin.nextBigDecimal();a=a.add(b);String str=a.stripTrailingZeros().toPlainString();//stripTrailingZeros()这个方法是用来去掉末尾的0的。 //toPlainString()这个方法是使字符串大数变成普通的数字字符组成的字符串, //如果不使用这个方法很可能数字变成了科学计数法,带E的那种。 System.out.println(str);}}
}
大数问题-----ACM中java的入门使用相关推荐
- ACM中java快速入门
2019独角兽企业重金招聘Python工程师标准>>> ACM中java快速入门 附: Chapter I. Java的优缺点各种书上都有,这里只说说用Java做ACM-ICPC的特 ...
- ACM中java的使用
ACM中java的使用 转载自http://www.cnblogs.com/XBWer/archive/2012/06/24/2560532.html 这里指的java速成,只限于java语法,包括输 ...
- ACM中java的使用 (转)
ACM中java的使用 这里指的java速成,只限于java语法,包括输入输出,运算处理,字符串和高精度的处理,进制之间的转换等,能解决OJ上的一些高精度题目. 1. 输入:格式为:Scanner c ...
- acm java题_【转】ACM中java的使用
ACM中java的使用 这里指的java速成,只限于java语法,包括输入输出,运算处理,字符串和高精度的处理,进制之间的转换等,能解决OJ上的一些高精度题目. 1. 输入: 格式为:Scanner ...
- ACM中java的使用(各种比赛中)
转载自点击打开链接 这里指的java速成,只限于java语法,包括输入输出,运算处理,字符串和高精度的处理,进制之间的转换等,能解决OJ上的一些高精度题目. 1. 输入: 格式为:Scanner ci ...
- ACM中Java使用总结
Java在ACM中的主要应用是大数类[个人见解].做个小总结,留作模板用. 类名默认为Main. 输入: 声明一个输入对象cin;Scanner cin=new Scanner(System.in); ...
- ACM中JAVA高速IO外挂!!!
大家都知道,在ACM竞赛中,对程序运行时间有非常严格的要求,所以大部分人喜欢用C/C++,因为C/C++比JAVA快,JAVA容易超时.然而JAVA语言本身也有很多C/C++所没有的优势,为了让我们可 ...
- ACM中Java输入输出
最初写算法时,是用Scanner的.因为当时接触的测试数据基本都是以算法的复杂度为主,但是后面遇到大量的输入数据时.发现Scanner远远不能满足条件.下面列出几种常用的输入输出方式.(输出统一用pr ...
- java++biginter_Java中的BigInteger在ACM中的应用
Java中的BigInteger在ACM中的应用 在ACM中的做题时,经常会遇见一些大数的问题,这是当我们用C或是C++时就会觉得比较麻烦,就想有没有现有的现有的可以直接调用的BigInter,那样就 ...
- Java快速入门学习笔记9 | Java语言中的方法
有人相爱,有人夜里开车看海,有人却连LeetCode第一题都解不出来!虽然之前系统地学习过java课程,但是到现在一年多没有碰过Java的代码,遇到LeetCode不知是喜是悲,思来想去,然后清空自己 ...
最新文章
- win2008在组件服务中未找到office组件服务
- java实现插入排序算法 附单元测试源码
- 从零开始入门 K8s| 阿里技术专家详解 K8s 核心概念
- 为什么说要重视神经网络加速器
- js中单竖杠 | 的作用
- linux命令行大全 笔记,《Linux命令行大全》读书笔记
- textbox内容转为字符串_【公告】整改文章内容
- FISCO BCOS PBFT是什么 基础流程
- Charles使用手册
- python趋势跟踪_一个趋势跟踪系统—Dual Thrust策略(期货)
- 线性代数 --- 矩阵求逆的4种方法
- c语言编写方波信号的思路,频率可调的方波信号发生器设计及电路
- android scroller,高级UI第四十四篇:Android Scroller详解
- 使用curl批量下载图片
- 史济怀20180915_1 有限覆盖定理
- 如何利用朋友圈做好微信营销之路
- roll() java_java.util.Calendar.roll(int field,int amount)方法实例
- 【汇编语言学习】汇编语言基础(一)
- 高德、百度地图自定义底图
- 垃圾去哪里系列之可回收物
热门文章
- Servlet(Request.Response)+文件上传
- debian-nagios3.2,linux+apache+mysql+php
- 《R in Action》读书笔记(2)
- RAC安装之一 安装前准备
- The method isEmpty() is undefined for the type String/String类型的isEmpty报错
- 更快的 Chrome?谷歌正在测试“永不变慢”模式
- 通过BeanPostProcessor理解Spring中Bean的生命周期及AOP原理 1
- mysql用shell脚本链接数据库进行操作
- 几种类型的db,以及最新的db排名,看一下
- 过滤掉文本中的javascript标签代码