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是不可以修改的,要修改只能转换为字符数组.

例程:

  1. import java.io.*;
  2. import java.math.*;
  3. import java.util.*;
  4. import java.text.*;
  5. public class Main
  6. {
  7. public static void main(String[] args)
  8. {
  9. int i;
  10. Scanner cin = new Scanner (new BufferedInputStream(System.in));
  11. String st = "abcdefg";
  12. System.out.println(st.charAt(0)); // st.charAt(i)就相当于st[i].
  13. char [] ch;
  14. ch = st.toCharArray(); // 字符串转换为字符数组.
  15. for (i = 0; i < ch.length; i++) ch[i] += 1;
  16. System.out.println(ch); // 输入为“bcdefgh”.
  17. if (st.startsWith("a")) // 如果字符串以'0'开头.
  18. {
  19. st = st.substring(1); // 则从第1位开始copy(开头为第0位).
  20. }
  21. }
  22. }

函数:Arrays.sort();

例程:

  1. import java.io.*;
  2. import java.math.*;
  3. import java.util.*;
  4. import java.text.*;
  5. public class Main
  6. {
  7. public static void main(String[] args)
  8. {
  9. Scanner cin = new Scanner (new BufferedInputStream(System.in));
  10. int n = cin.nextInt();
  11. int a[] = new int [n];
  12. for (int i = 0; i < n; i++) a[i] = cin.nextInt();
  13. Arrays.sort(a);
  14. for (int i = 0; i < n; i++) System.out.print(a[i] + " ");
  15. }
  16. }

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高精度,大数的更多相关文章

  1. JAVA高精度模板

    刚开始还坚持用C++写高精来着,后来发现JAVA写高精方便太多了,所以也来学习一下JAVA高精度的模板. 参考:https://www.cnblogs.com/imzscilovecode/p/883 ...

  2. Java中大数的使用与Java入门(NCPC-Intergalactic Bidding)

    引入 前几天参加湖南多校的比赛,其中有这样一道题,需要使用高精度,同时需要排序,如果用c++实现的话,重载运算符很麻烦,于是直接学习了一发怎样用Java写大数,同时也算是学习Java基本常识了 题目 ...

  3. 关于java对于大数处理的相关程序和用法

    <span style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 13px; l ...

  4. Java高精度基础+开根

    在焦作站的acm网络赛中遇到了一个高精度开根的水题--但是那时候WA了 后面学写java补题还T了orz 所以写一篇文章来记录一下java的大整数类型的基础和开根还有一点心得体会吧 首先给那一题的题面 ...

  5. HDU 5686 斐波那契数列、Java求大数

    原题:http://acm.hdu.edu.cn/showproblem.php?pid=5686 当我们要求f[n]时,可以考虑为前n-1个1的情况有加了一个1. 此时有两种情况:当不适用第n个1进 ...

  6. Java BigInteger(大数,ACM比赛专用)

    用c或者C++处理大数比较麻烦,于是决心学习一下JAVA中大数运算. 先下载一个eclipse,具体的用法去问度娘吧 JAVA中有两个类BigInteger和BigDecimal分别表示大整数类和大浮 ...

  7. Java的大数操作分为BigInteger和BigDecimal

    Java的大数操作分为BigInteger和BigDecimal,但这两给类是分开使用的,有时候在编程的时候显得略微繁琐,现在编写了一个将二者合二为一的大数操作类. 大数操作类代码如下: 1 pack ...

  8. Java高精度学习第二弹——求N!

    继续学习Java高精度,今天写的是求N!. 首先附上源代码: import java.util.Scanner; import java.math.BigInteger; public class M ...

  9. JAVA解决大数

    主题链接:CLICK HERE~ 有了Java求解大数变得如此简单,以后再也不用操心大数模板了.哦啦啦啦. import java.math.BigInteger; import java.math. ...

  10. 用Java进行大数处理(BigInteger)-hdu1042

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1042 题目描述: 代码实现: import java.util.Scanner; import jav ...

随机推荐

  1. SpringCloud踩坑

    今天在使用 SpringCloud 时遇到了一个问题,感觉有不少小伙伴会遇到,所以记录下来 版本说明 SpringBoot 2.2.4.RELEASE SpringCloud Greenwich.SR ...

  2. MongoDB3.4版本新增特性

    先说明一下mongod和mongos的含义:mongod是MongoDB系统的主要后台进程,它处理数据请求.管理数据访问和执行后台管理操作:该命令的命令行选项主要用于测试,在场景操作中,使用配置文件选 ...

  3. # ConfigureAwait常见问题解答

    原文: https://devblogs.microsoft.com/dotnet/configureawait-faq/ .NET 在七多年前在语言和类库添加了 async/await .在那个时候 ...

  4. 数据库 left()、length()函数

    数据库 left().length()函数 1.Mysql的length()函数: length()函数主要用于计算字符串的长度,用法也很简单:length(要计算的字符串) 就可以计算出字符串的长度 ...

  5. 吴裕雄--天生自然HADOOP操作实验学习笔记:hive安装

    实验目的 了解hive的原理和安装方式 学习使用MySQL数据库 使用hive进行基本操作 实验原理 1.Hive Hive是一个数据仓库技术,包括解释器.编译器.优化器,一次将一个sql语句装化为m ...

  6. vue项目下的导入和导出

    本篇博文主要记录我们在写项目的时候经常需要用到导入和导出. 导入 首先定义一个模态弹窗,一般情况下会使用一个input(设置opacity:0)覆盖在显示的按钮上面 <!-- 3.导入 --&g ...

  7. JavaSE学习笔记(8)---常用类

    JavaSE学习笔记(8)---常用类 1.Object类 java.lang.Object类是Java语言中的根类,即所有类的父类.它中描述的所有方法子类都可以使用.在对象实例化的时候,最终找的父类 ...

  8. node的定时器

    node.schedule(callback, interval, repeat, delay, key);node.unscheduleAllCallbacks(); 最妙的是还能再node的sch ...

  9. gulp常用插件之gulp-cache使用

    更多gulp常用插件使用请访问:gulp常用插件汇总 gulp-cache这是一款基于临时文件的gulp缓存代理任务. 更多使用文档请点击访问gulp-cache工具官网. 安装 一键安装不多解释 n ...

  10. 【终端使用】常用Linux命令的基本使用

    常用Linux命令的基本使用: 命令 对应英文 作用 ls list 查看当前文件夹下的内容 pwd print work directory 查看当前所在的文件夹 cd [目录名] change d ...