java高精度,大数
package 高精度幂; import java.math.BigDecimal;
import java.util.Scanner; public class Main{
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
while (cin.hasNext()) {
BigDecimal bd = new BigDecimal(cin.next());
BigDecimal result = bd.pow(cin.nextInt());
String s = result.stripTrailingZeros().toPlainString(); //去掉尾零
if(s.startsWith("0")) //去掉首零
s=s.substring(1);
System.out.println(s);
}
} }
2.HDU1042 N!
import java.math.*;
import java.util.*; public class Main {
public static BigInteger num; public static void main(String args[]) {
Scanner cin = new Scanner(System.in); while (cin.hasNext()) {
num = BigInteger.ONE;
int n = cin.nextInt();
num = BigInteger.ONE;
for (int i = 1; i <= n; i++) {
num= num.multiply(BigInteger.valueOf(i));
}
System.out.println(num);
}
}
}
4.HDU1753 加法
import java.math.BigDecimal;
import java.util.Scanner;
import java.util.*; public class Main { public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
while(cin.hasNext()){
BigDecimal a=cin.nextBigDecimal();
BigDecimal b=cin.nextBigDecimal();
String s = a.add(b).stripTrailingZeros().toPlainString();
System.out.println(s);
} } }
比较函数
if(a.compareTo(b)<)//此时由于a<b,则返回值小于0;
{
System.out.println("a<b");
}
if(b.equals(c))//此时由于b==c,则返回值等于0;
{
System.out.println("b==c");
}
if(d.compareTo(c)>)//此时由于d>c,则返回值大于0;
{
System.out.println("d>c");
}
(4)
对于输出浮点数保留几位小数的问题,可以使用DecimalFormat类,
import java.text.*;
DecimalFormat f = new DecimalFormat("#.00#");
DecimalFormat g = new DecimalFormat("0.000");
double a = 123.45678, b = 0.12;
System.out.println(f.format(a));
System.out.println(f.format(b));
System.out.println(g.format(b));
这里0指一位数字,#指除0以外的数字。
string中的字符串不可变,stringbuild或者stringbuffer中的可变,还有insert与append方法
reverse函数
package test1;
public class TestReverse {
public static void main(String[] args) {
String str2 = "Hello";
str2 = new StringBuffer(str2).reverse().toString();
System.out.println(str2);
String message = "Hello";
StringBuilder rev = new StringBuilder();
for (int i = message.length() - 1; i >= 0; i--)
rev.append(message.charAt(i));
System.out.println(rev.toString());
}
}
java中字符串String是不可以修改的,要修改只能转换为字符数组.
例程:
- import java.io.*;
- import java.math.*;
- import java.util.*;
- import java.text.*;
- public class Main
- {
- public static void main(String[] args)
- {
- int i;
- Scanner cin = new Scanner (new BufferedInputStream(System.in));
- String st = "abcdefg";
- System.out.println(st.charAt(0)); // st.charAt(i)就相当于st[i].
- char [] ch;
- ch = st.toCharArray(); // 字符串转换为字符数组.
- for (i = 0; i < ch.length; i++) ch[i] += 1;
- System.out.println(ch); // 输入为“bcdefgh”.
- if (st.startsWith("a")) // 如果字符串以'0'开头.
- {
- st = st.substring(1); // 则从第1位开始copy(开头为第0位).
- }
- }
- }
函数:Arrays.sort();
例程:
- import java.io.*;
- import java.math.*;
- import java.util.*;
- import java.text.*;
- public class Main
- {
- public static void main(String[] args)
- {
- Scanner cin = new Scanner (new BufferedInputStream(System.in));
- int n = cin.nextInt();
- int a[] = new int [n];
- for (int i = 0; i < n; i++) a[i] = cin.nextInt();
- Arrays.sort(a);
- for (int i = 0; i < n; i++) System.out.print(a[i] + " ");
- }
- }
1、Arrays.sort()
(1)数字排序
int[] num =newint[]{4,2,3,5,-8,5,2,3};
Arrays.sort(num);
for(int i = 0; i < 8;i++)
System.out.print(num[i]+”,”);
输出结果:-8,2,2,3,3,4,5,5,
(2)字符串排序(先大写后小写原则)
String[] s = new String[]{"Z","a","A","z"};
Arrays.sort(s);
for(int i = 0; i < 4;i++)
System.out.print(s[i] +",");
输出结果:A,Z,a,z,
(3)严格按照字母表排序(即忽略大小写)
String[] s = new String[]{"Z","a","A","z"};
Arrays.sort(s,String.CASE_INSENSITIVE_ORDER);
for(int i = 0; i < 4;i++)
System.out.print(s[i] +",");
输出结果:a,A,Z,z,
(4)忽略大小写反向排序
String[] s = new String[]{"Z","a","A","z"};
Arrays.sort(s,String.CASE_INSENSITIVE_ORDER);
Collections.reverse(Arrays.asList(s));
for(int i = 0; i < 4;i++)
System.out.print(s[i] +",");
输出结果:z,Z,A,a,
(5)对象的排序(类似于C中的结构体的排序)
package zoj3380; import java.io.*;
import java.lang.reflect.Array;
import java.text.*;
import java.util.*;
import java.math.*;
public class Main
{
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
student[] students = new student[10];
for (int i = 0; i < n; i++) {
String s = scanner.next();
int a = scanner.nextInt();
int b = scanner.nextInt();
students[i] = new student(a, b, s);
}
// int len = students.;
Arrays.sort(students,0, n, new Acomparator());
//排序必须保证每个里面都有元素,要不然会报错。
// Arrays.sort(students, new Acomparator());
for(int i = 0; i < n; i++) {
System.out.println(students[i].getA());
}
}
} class student {
private int a, b;
private String s; public student(int a, int b, String s) {
this.a = a;
this.b = b;
this.s = s;
} public int getA() {
return a;
} public void setA(int a) {
this.a = a;
} public int getB() {
return b;
} public void setB(int b) {
this.b = b;
} public String getS() {
return s;
} public void setS(String s) {
this.s = s;
}
} class Acomparator implements Comparator { @Override
public int compare(Object o1, Object o2) {
int a = ((student)o1).getA();
int b = ((student)o2).getA();
int c = a - b;
if(c <= 0) return -1;
else return 1;
}
}
java高精度,大数的更多相关文章
- JAVA高精度模板
刚开始还坚持用C++写高精来着,后来发现JAVA写高精方便太多了,所以也来学习一下JAVA高精度的模板. 参考:https://www.cnblogs.com/imzscilovecode/p/883 ...
- Java中大数的使用与Java入门(NCPC-Intergalactic Bidding)
引入 前几天参加湖南多校的比赛,其中有这样一道题,需要使用高精度,同时需要排序,如果用c++实现的话,重载运算符很麻烦,于是直接学习了一发怎样用Java写大数,同时也算是学习Java基本常识了 题目 ...
- 关于java对于大数处理的相关程序和用法
<span style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 13px; l ...
- Java高精度基础+开根
在焦作站的acm网络赛中遇到了一个高精度开根的水题--但是那时候WA了 后面学写java补题还T了orz 所以写一篇文章来记录一下java的大整数类型的基础和开根还有一点心得体会吧 首先给那一题的题面 ...
- HDU 5686 斐波那契数列、Java求大数
原题:http://acm.hdu.edu.cn/showproblem.php?pid=5686 当我们要求f[n]时,可以考虑为前n-1个1的情况有加了一个1. 此时有两种情况:当不适用第n个1进 ...
- Java BigInteger(大数,ACM比赛专用)
用c或者C++处理大数比较麻烦,于是决心学习一下JAVA中大数运算. 先下载一个eclipse,具体的用法去问度娘吧 JAVA中有两个类BigInteger和BigDecimal分别表示大整数类和大浮 ...
- Java的大数操作分为BigInteger和BigDecimal
Java的大数操作分为BigInteger和BigDecimal,但这两给类是分开使用的,有时候在编程的时候显得略微繁琐,现在编写了一个将二者合二为一的大数操作类. 大数操作类代码如下: 1 pack ...
- Java高精度学习第二弹——求N!
继续学习Java高精度,今天写的是求N!. 首先附上源代码: import java.util.Scanner; import java.math.BigInteger; public class M ...
- JAVA解决大数
主题链接:CLICK HERE~ 有了Java求解大数变得如此简单,以后再也不用操心大数模板了.哦啦啦啦. import java.math.BigInteger; import java.math. ...
- 用Java进行大数处理(BigInteger)-hdu1042
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1042 题目描述: 代码实现: import java.util.Scanner; import jav ...
随机推荐
- SpringCloud踩坑
今天在使用 SpringCloud 时遇到了一个问题,感觉有不少小伙伴会遇到,所以记录下来 版本说明 SpringBoot 2.2.4.RELEASE SpringCloud Greenwich.SR ...
- MongoDB3.4版本新增特性
先说明一下mongod和mongos的含义:mongod是MongoDB系统的主要后台进程,它处理数据请求.管理数据访问和执行后台管理操作:该命令的命令行选项主要用于测试,在场景操作中,使用配置文件选 ...
- # ConfigureAwait常见问题解答
原文: https://devblogs.microsoft.com/dotnet/configureawait-faq/ .NET 在七多年前在语言和类库添加了 async/await .在那个时候 ...
- 数据库 left()、length()函数
数据库 left().length()函数 1.Mysql的length()函数: length()函数主要用于计算字符串的长度,用法也很简单:length(要计算的字符串) 就可以计算出字符串的长度 ...
- 吴裕雄--天生自然HADOOP操作实验学习笔记:hive安装
实验目的 了解hive的原理和安装方式 学习使用MySQL数据库 使用hive进行基本操作 实验原理 1.Hive Hive是一个数据仓库技术,包括解释器.编译器.优化器,一次将一个sql语句装化为m ...
- vue项目下的导入和导出
本篇博文主要记录我们在写项目的时候经常需要用到导入和导出. 导入 首先定义一个模态弹窗,一般情况下会使用一个input(设置opacity:0)覆盖在显示的按钮上面 <!-- 3.导入 --&g ...
- JavaSE学习笔记(8)---常用类
JavaSE学习笔记(8)---常用类 1.Object类 java.lang.Object类是Java语言中的根类,即所有类的父类.它中描述的所有方法子类都可以使用.在对象实例化的时候,最终找的父类 ...
- node的定时器
node.schedule(callback, interval, repeat, delay, key);node.unscheduleAllCallbacks(); 最妙的是还能再node的sch ...
- gulp常用插件之gulp-cache使用
更多gulp常用插件使用请访问:gulp常用插件汇总 gulp-cache这是一款基于临时文件的gulp缓存代理任务. 更多使用文档请点击访问gulp-cache工具官网. 安装 一键安装不多解释 n ...
- 【终端使用】常用Linux命令的基本使用
常用Linux命令的基本使用: 命令 对应英文 作用 ls list 查看当前文件夹下的内容 pwd print work directory 查看当前所在的文件夹 cd [目录名] change d ...