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. 小白的linux笔记8:linux自动运行爬虫并发送提醒邮件

    有了成功运行的爬虫后,希望能每天定时运行,且遇到错误时能及时发出提醒. 发出提醒 可以用mailx发出邮件做提醒.没有的话先安装Yum install mailx. 以qq邮箱为例,需要设置/etc/ ...

  2. [TJOI2014] 匹配

    注:此题无序,也无嵬 正文 我们这题求得事实上是一个最大费用最大流,最后的对每条边进行枚举,额然后,如果最大费用小了,就计入答案.. 算是,比较水吧 还有,一开始WA了两次是因为,dis应初始化为负无 ...

  3. Linux.CentOS下载

    1.[CentOS]centos7 稳定使用版本,centos镜像的下载 - Angel挤一挤 - 博客园.html(https://www.cnblogs.com/sxdcgaq8080/p/106 ...

  4. 吴裕雄--天生自然HADOOP操作实验学习笔记:hbase微博案例

    实验目的 熟悉hbase表格设计的方法 熟悉hbase的javaAPI 通过API理解掌握hbase的数据的逻辑视图 了解MVC的服务端设计方式 实验原理 上次我们已经初步设计了学生选课案例的,具体功 ...

  5. qt 带箭头的直线 (类似viso)

    2020.02.27 本来上传到CSDN,后来想想,我要放弃csdn了.csdn已经跟我分享的精神背道而驰了.想要代码,留邮箱吧. 近来Qt开发时可能遇到这样的需求:两个(或多个)矩形,要用直线将它们 ...

  6. windows系统安装部署python3.5和python2.7双解释器并存

    前提材料准备: 下载对应版本的安装包:下载地址:https://www.python.org/downloads/windows/ python3.8.x安装包下载: python2.7.x安装包下载 ...

  7. Spark性能优化指南——初级篇

    原文来我的公众号:Spark性能优化指南——初级篇 一. Spark作业原理 我们使用spark-submit提交一个Spark作业之后,这个作业就会启动一个对应的Driver进程.该进程是向集群管理 ...

  8. 作业day2

    问题一: Java类中只能有一个公有类吗?用Eclipse检测以下程序是否正确.是否在接口中同样适用. 因为公共类名必须和这个java源程序文件名相同,所以只能有一个公共类,相应的,main方法作为程 ...

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

    更多gulp常用插件使用请访问:gulp常用插件汇总 gulp-imagemin这是一款缩小PNG,JPEG,GIF和SVG图像的插件. 更多使用文档请点击访问gulp-imagemin工具官网. 安 ...

  10. 【剑指Offer】01、二维数组中的查找

    题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 ...