java大法好,退C保平......开玩笑的;

1、头文件:

import java.math.*; // 包含大数类的包   

import java.util.*;  // 包含输入头的包  

2、程序主体,以及类名必须为Main:

public class Main{
public static void main(String args[]){
Scanner cin = newScanner(System.in); // 输入必备句
}
}

3、有关函数:

运算类:

//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 b
c=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

类型转换类:

d=a.intValue();      //       将大数a转换为 int 类型赋值给 d
e=a.longValue(); // 将大数a转换为 long 类型赋值给 e
f=a.floatValue(); // 将大数a转换为 float 类型赋值给 f
g=a.doubleValue(); // 将大数a转换为 double 类型赋值给 g
s=a.toString(); // 将大数a转换为 String 类型赋值给 s
<span style="color:#ff0000;">s=a.toPlainString(); //将大数a转换为String类型赋值给s,且不表示为科学计数法</span>
a=BigInteger.valueOf(e); // 将 e 以大数形式赋值给大数 a e只能为long或int
a=newBigInteger(s, d); // 将s数字字符串以d进制赋值给大数a如果d=s字符数字的进制则等同于将数字字符串以大数形式赋值给大数a

进制转换类:

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进制读入一个大数赋值给a
c=a.toString(b); // 将大数a以b进制的方式赋给字符串c
a=newBigInteger(c, b); //把c 当做“b进制“转为十进制大数赋值给a

 例:hdu1250  http://acm.hdu.edu.cn/showproblem.php?pid=1250

题目大意:斐波那契数列;

import java.util.*;
import java.math.*; public class Main {
public static void main(String[] args) {
Scanner cin=new Scanner(System.in);
while(cin.hasNext()){
int n=cin.nextInt();
BigInteger ans[]=new BigInteger[10000];
//BigInteger tmp1=BigInteger.valueOf(1);
//BigInteger tmp2=BigInteger.valueOf(1);
ans[1]=ans[2]=ans[3]=ans[4]=BigInteger.ONE;
for(int i=5;i<=n;i++)
{
ans[i]=ans[i-1].add(ans[i-2]).add(ans[i-3]).add(ans[i-4]);
}
System.out.println(ans[n]);
}
}
}

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

题目大意:两个大数浮点数相加;

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,b;
while(cin.hasNext()){
a=cin.nextBigDecimal();
b=cin.nextBigDecimal();
System.out.println(a.add(b).stripTrailingZeros().toPlainString());
}
}
}
}

PS: 有用java水了一道,这里注意下要求最简形式,可能会出现4.0或者1e5等形式,所以用stripTrailingZeros()函数去除末尾0,用toPlainString()函数转成普遍计数法输出。

ACM中的java的使用;的更多相关文章

  1. ACM中使用 JAVA v2. 1

    ACM中使用JAVA v2.1 严明超 (Blog:mingchaoyan.blogbus.com Email:mingchaoyan@gmail.com) 0.前 言 文前声明:本文只谈java用于 ...

  2. Java高精度学习第三弹——ACM中使用JAVA的详细介绍

    Chapter I. Java的优缺点各种书上都有,这里只说说用Java做ACM-ICPC的特点: (1) 最明显的好处是,学会Java,可以参加Java Challenge . (2) 对于熟悉C/ ...

  3. ACM中java的使用

    ACM中java的使用 转载自http://www.cnblogs.com/XBWer/archive/2012/06/24/2560532.html 这里指的java速成,只限于java语法,包括输 ...

  4. Java在ACM中的应用

    Java在ACM中的应用 —. 在java中的基本头文件(java中叫包) import java.io.*; import java.util.*; //输入Scanner import java. ...

  5. ACM中Java的应用

    先说一下Java对于ACM的一些优点吧: (1) 对于熟悉C/C++的程序员来说Java 并不难学,两周时间基本可以搞定一般的编程,再用些时间了解一下Java库就行了.Java的语法和C++非常类似, ...

  6. [原创]浅谈JAVA在ACM中的应用

    由于java里面有一些东西比c/c++方便(尤其是大数据高精度问题,备受广大ACMer欢迎),所以就可以灵活运用这三种来实现编程,下面是我自己在各种大牛那里总结了一些,同时加上自己平时遇到的一些jav ...

  7. Java中的BigInteger在ACM中的应用

    Java中的BigInteger在ACM中的应用 在ACM中的做题时,常常会遇见一些大数的问题.这是当我们用C或是C++时就会认为比較麻烦.就想有没有现有的现有的能够直接调用的BigInter,那样就 ...

  8. ACM 中JAVA的应用

    原文地址:http://www.cppblog.com/vontroy/archive/2010/05/24/116233.html 先说一下Java对于ACM的一些优点吧: (1) 对于熟悉C/C+ ...

  9. ACM中java的使用 (转)

    ACM中java的使用 这里指的java速成,只限于java语法,包括输入输出,运算处理,字符串和高精度的处理,进制之间的转换等,能解决OJ上的一些高精度题目. 1. 输入: 格式为:Scanner ...

  10. java在acm中常用基础技巧方法

    java在acm中常用基础技巧方法 如果学到了新的技巧,本博客会更新~ input input-std @Frosero import java.util.*; public class Main { ...

随机推荐

  1. Unity检测鼠标是否与UI交互

    在Unity项目中,假设在鼠标按键时会触发游戏内的操作,但是在鼠标与UI进行交互时我们希望停止游戏中的操作,这是需要使用EventSystem中的方法来检测鼠标是否正在与UI交互 private bo ...

  2. windows系统下使用java语言,在mysql数据库中做定时数据备份、删除

    有这样一个业务需求,需要将数据归档的表每月定时备份,并且删除之前表中的数据,话不多说,直接上代码! 注意:这种方法适合数据量小,业务要求不高的场景! 项目采用SpringBoot  + MyBatis ...

  3. 基于TDesign风格的Blazor企业级UI组件库

    作为一名Web开发人员,开发前端少不了使用JavaScript,而Blazor就是微软推出的基于.net平台交互式客户 Web UI 框架,可以使用C#替代JavaScript,减少我们的技术栈.降低 ...

  4. DES & 3DES 简介 以及 C# 和 js 实现【加密知多少系列】

    〇.简介 1.DES 简介 DES 全称为 Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法,1977 年被美国联邦政府的国家标准局确定为联邦资料处理标准( ...

  5. MySQL高可用架构-MMM、MHA、MGR、分库分表

    总结 MMM是是Perl语言开发的用于管理MySQL主主同步架构的工具包.主要作用:管理MySQL的主主复制拓扑,在主服务器失效时,进行主备切换和故障转移. MMM缺点:故障切换可能会丢事务(主备使用 ...

  6. uniapp安卓离线打包权限问题

    安卓离线打包需要在androidManifest.xml配置 在 manifest 节点下面加上权限(对应uniapp当中manifest.json当中安卓的权限配置),例如: <manifes ...

  7. ACM-学习记录-数据结构-1

    AOJ-ALDS1_1_D Maximum Profit 本题主要考虑要将复杂度降到O(n),否则过不了最后五组数据 #include<iostream> #include<bits ...

  8. [CTF]picoCTF-day1

    Lets Warm Up If I told you a word started with 0x70 in hexadecimal, what would it start with in ASCI ...

  9. 集合-HashMap 源码详细分析(JDK1.8)

    1. 概述 本篇文章我们来聊聊大家日常开发中常用的一个集合类 - HashMap.HashMap 最早出现在 JDK 1.2中,底层基于散列算法实现.HashMap 允许 null 键和 null 值 ...

  10. Mybatis 获取自增主键 useGeneratedKeys与keyProperty 解答

    Mybatis 获取自增主键 今天开发的时候遇到一个疑惑,业务场景是这样的, 但是百度好久没有找到合适的解答,于是自己向同事了解,感觉还不错,因此写上了这个文章 有一个表A和一个表B A就是一个主表, ...