java大法

  java的框架。

  

import java.io.*;
import java.util.*;
import java.math.*;
public class Main{
public static void main(String []args){
Scanner cin=new Scanner(System.in); } }

  

  import的作用:简单的说就是导入,java有很多方法你可以直接使用,但是被封装在各个包(类)里面,你需要先导包,才能使用这个包里的方法。

  *的作用:表示该包中的所有类,*是通配符。

  import java.io*;表示引入java.io包里的所有类。

  import java.util*;导入包含集合框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组、日期Date类、堆栈Stack类、向量Vector类等)。其实不用太理解,只需要知道这个跟C/C++中的头文件一样都要加上。

  import java.math.*;表示导入跟数学计算相关的所有类。其中含有BigInteger和BigDecimal这两个非常好用的类,分别处理超长整数和超长浮点数。

http://acm.hdu.edu.cn/showproblem.php?pid=1753

import java.io.*;
import java.math.*;
import java.util.Scanner;
import java.util.*;
public class Main {//类名。需要用Main,因为OJ判题会找这个类名
public static void main(String [] args){//这个跟C/C++中的main函数一样
BigDecimal a,b; //用超长浮点类创建a、b两个对象
a=new BigDecimal ("0");//调用以String为参数的构造方法
b=new BigDecimal ("0");
Scanner in =new Scanner (System.in);//Scanner类创建in对象在控制台进行数据输入
while(in.hasNext()){//hasNext方法返回bool类型,用以多组数据输入
a=in.nextBigDecimal();//调用in对象的方法,将值赋给a对象
b=in.nextBigDecimal();
System.out.println(a.add(b).stripTrailingZeros().toPlainString());
//System.out.print()跟上面的差别是最后没有换行
//stripTrailingZeros()方法的作用是忽略后导零
//toPlainString()方法的作用是返回不带指数字段的字符串表示形式
}
}
}

http://acm.hdu.edu.cn/showproblem.php?pid=1002   加法

import java.io.*;
import java.math.*;
import java.util.*;
public class Main {
public static void main(String []args){
Scanner cin = new Scanner (System.in);
int t,cnt=0;
t=cin.nextInt();
BigInteger a,b;
while(cnt<t){ //T组数据输入
cnt++;
a=cin.nextBigInteger();
b=cin.nextBigInteger();
System.out.println("Case"+" "+cnt +":");
if(cnt<t){
System.out.println(a+" + "+b+" = "+a.add(b));
System.out.println();
}else{
System.out.println(a+" + "+b+" = "+a.add(b));
}
}
}
}

http://acm.hdu.edu.cn/showproblem.php?pid=1042  阶乘

import java.io.*;
import java.math.*;
import java.util.*;
public class Main {
public static void main(String []args){
Scanner cin = new Scanner (System.in);
BigInteger ans;
BigInteger one = new BigInteger ( "1" );//对象one 用来赋初值
while(cin.hasNext()){
int n=cin.nextInt();
ans=one;
for(int i=2;i<=n;i++){
ans=ans.multiply(BigInteger.valueOf(i));
}
System.out.println(ans);
}
}
}

http://acm.hdu.edu.cn/showproblem.php?pid=1047

import java.util.*;
import java.math.*;
public class Main {
public static void main(String [] args){
Scanner in = new Scanner(System.in);
int i,n;
BigInteger a,ans;
n=in.nextInt();
for( i=0; i<n;i++ ){
ans=BigInteger.valueOf(0);//用0赋初值
while(in.hasNext()){
a=in.nextBigInteger();
if(a.equals(BigInteger.ZERO)){//equal返回bool类型。如果相等则ture。
break;
}
ans=ans.add(a);
}
System.out.println(ans);
if(i!=n-1)
System.out.println();
}
//in.close();
}
}

  

http://acm.hdu.edu.cn/showproblem.php?pid=1063  浮点数的次方

import java.io.*;
import java.util.*;
import java.math.*;
public class Main{
public static void main(String [] args){
Scanner cin = new Scanner(System.in);
while(cin.hasNext()){
BigDecimal a= cin.nextBigDecimal();
int n=cin.nextInt();
String ans=a.pow(n).stripTrailingZeros().toPlainString();
//pow直接计算a的n次方
if(ans.startsWith("0")){ //如果该对象是以0开头的
ans=ans.substring(1); //截取从指定索引处的字符开始到串尾
}
System.out.println(ans);
}
}
}

  

http://acm.hdu.edu.cn/showproblem.php?pid=1316  斐波那契数列

import java.io.*;
import java.util.*;
import java.math.*;
public class Main{
public static void main(String []args){
BigInteger f[]=new BigInteger [505]; //创建对象数组
BigInteger zero = new BigInteger("0");
f[1]=new BigInteger("1"); //实例化对象
f[2]=new BigInteger("2");
for(int i=3;i<=501;i++){
f[i]=f[i-1].add( f[i-2] );
}
Scanner cin= new Scanner(System.in);
BigInteger a,b;
int i,k;
while(cin.hasNext()){
a=cin.nextBigInteger();
b=cin.nextBigInteger();
if(a.equals(zero)&&b.equals(zero)){ //同时为零
break;
}
for( i=1,k=0;i<=500;i++){
if(a.compareTo(f[i])<=0 && b.compareTo(f[i])>=0 ){
//a.compareTo(b)方法a如果大于b,则返回1;如果相等,返回0;如果a小于b,返回-1
k++;
}
if( b.compareTo(f[i])<0 ) break;
}
System.out.println(k);
}
}
}

  

http://acm.hdu.edu.cn/showproblem.php?pid=2075  取余

import java.io.*;
import java.util.*;
import java.math.*;
public class Main{
public static void main(String []args){
Scanner cin= new Scanner (System.in);
int n=cin.nextInt();
BigInteger a,b,c;
for(int i=0;i<n;i++){
a=cin.nextBigInteger();
b=cin.nextBigInteger();
if(!b.equals(BigInteger.ZERO)){
c=a.mod(b); //c=a%b
if(c.equals(BigInteger.ZERO)){
System.out.println("YES");
}else{
System.out.println("NO");
}
}
}
}
}

  

http://acm.hdu.edu.cn/showproblem.php?pid=5429  判断是否为等比数列(可能有浮点数)

import java.io.*;
import java.util.*;
import java.math.*;
public class Main{
public static void main(String [] args){
BigDecimal f[]=new BigDecimal [120];
Scanner cin = new Scanner (System.in);
BigDecimal Zero = BigDecimal.ZERO;
int t,cnt=0,n;
t = cin.nextInt();
while(cnt<t){
cnt++;
n = cin.nextInt();
int flag=0;
for(int i=0;i<n;i++){
f[i] = cin.nextBigDecimal();
if( f[i].compareTo(Zero) == 0 ){
flag++;
}
}
if(flag!=0){
if(flag!=n){
System.out.println("No");
}else{
System.out.println("Yes");
}
continue;
}
if(n<=2){
System.out.println("Yes");
}else{
BigDecimal a,b,c;
int i;
for(i=2;i<n;i++){
c=f[i];b=f[i-1];a=f[i-2];
if( a.multiply(c).compareTo(b.multiply(b))!=0 ){
System.out.println("No");
break;
}
}
if(i==n){
System.out.println("Yes");
}
}
}
}
}

  

高精度运算——java的更多相关文章

  1. ICPC Asia Nanning 2017 F. The Chosen One (高精度运算)

    题目链接:The Chosen One 比赛链接:ICPC Asia Nanning 2017 题意 \(t\) 组样例,每组给出一个整数 \(n(2\le n\le 10^{50})\),求不大于 ...

  2. 高精度运算专题3-乘法运算(The multiplication operation)

    这个专题呢,我就来讲讲高精度的乘法,下面是三个计算乘法的函数,第一个函数是char类型的,要对字符串进行数字转换,而第二个是两个int类型的数组,不用转换成数字,第三个则更为优化,用a数组-b数组放回 ...

  3. [code]高精度运算

    数组存储整数,模拟手算进行四则运算 阶乘精确值 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 #includ ...

  4. 系统的讲解 - PHP 浮点数高精度运算

    目录 概述 浮点数运算的"锅" 任意精度数学函数 常用数值处理方案 扩展 小结 概述 记录下,工作中遇到的坑 ... 关于 PHP 浮点数运算,特别是金融行业.电子商务订单管理.数 ...

  5. #C++初学记录(高精度运算)(加法)

    高精度运算 不管是int还是double亦或者long long ,这些定义变量都有数据范围的一定限制,在计算位数超过十几位的数,也就是超过他们自身的数据范围时,不能采用现有类型进行计算,只能自己通过 ...

  6. 算法模板 - C++ 高精度运算

    C++算法板子 高精度 高精度推荐用python来写,python有大整数,这里写的是关于C++的高精度运算模板 1.高精 * 低精 #include <iostream> #includ ...

  7. java中小数的处理:高精度运算用bigDecimal类,精度保留方法,即舍入方式的指定

    一. 计算机的小数计算一定范围内精确,超过范围只能取近似值: 计算机存储的浮点数受存储bit位数影响,只能保证一定范围内精准,超过bit范围的只能取近似值. java中各类型的精度范围参见:http: ...

  8. hdu4927 Series 1(组合+公式 Java大数高精度运算)

    题目链接: Series 1 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) ...

  9. JAVA BigDecimal 高精度运算

    文章参考一位博友,由于时间太久忘了链接,见谅! public class BigDecimalUtils { private static final int DIV_SCALE = 10;// 除法 ...

随机推荐

  1. EIP-uni-app框架-建立项目

    uni-app介绍 uni-app 是一个使用 Vue.js 开发跨平台应用的前端框架,开发者编写一套代码,可编译到iOS.Android.H5.小程序等多个平台.uni-app在跨端数量,扩展能力, ...

  2. Core中间件——访问记录

    引言 上半年使用的thinkjs开发的node项目有一个优点就是所有请求都会有日志记录在控制台输出,里面包含了请求地址以及耗时.我就希望在.net中也可以实现这样子的功能,正好想到了中间件,所以就用中 ...

  3. P与NP问题详解

    P,NP,NPC问题,这或许是众多OIer最大的误区之一. 本文就为大家详细讲解如上三个问题. 前序: 你会经常看到网上出现“这怎么做,这不是NP问题吗”.“这个只有搜了,这已经被证明是NP问题了”之 ...

  4. 没固定公网 IP 的公司内网实现动态域名解析( 阿里云万网解析 )

    情景说明 前段时间应公司需求,需要将内网的服务映射到公网.由于公司使用的是类似家庭宽带的线路,没有固定的公网 IP 地址,所以决定使用域名来完成. 当时有几种方案: 1.花生壳:但是目前需要乱七八糟的 ...

  5. webpack4 入门(一)

    一.简介 WebPack可以看做是模块打包机:它做的事情是,分析你的项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(Scss,less, TypeScript等),并 ...

  6. 区块链中的密码学(四)- Merkle树和SPV节点

    什么是Merkle Tree? Merkle Tree 的命名来自于美国密码学家Ralph C. Merkle ,关于他的个人资料:传送门https://en.wikipedia.org/wiki/R ...

  7. SharePoint安装注意点

    在安装SharePoint之前需要注意的地方(整理如下:) 1.首先得先安装IIS服务器和ApplicationServer 2.然后要在运行setup.exe之前先运行prerequisiteins ...

  8. 分布式通信框架RMI

    1.RPC概念: Remote procedure call protocal,远程过程调用协议,一般用来实现部署在不同机器上的系统之间的方法调用, 使得程序能够像访问本地系统资源一样,通过网络传输去 ...

  9. 在基于AngularJs架构的ABP项目中使用UEditor

    [前提须知] 读过此篇博客 了解angular-ueditor 了解ABP如何使用 会使用VS2017 [1.下载ABP模板] https://aspnetboilerplate.com/Templa ...

  10. NowCoder数列(矩阵快速幂变式)

    时间限制 3000 ms 内存限制 32768 KB 代码长度限制 100 KB 题目描述 NowCoder最近在研究一个数列: * F(0) = 7 * F(1) = 11 * F(n) = F(n ...