java 精度函数_java高精度,大数

package高精度幂;importjava.math.BigDecimal;importjava.util.Scanner;public classMain{public static voidmain(String[] args) {

Scanner cin= newScanner(System.in);while(cin.hasNext()) {

BigDecimal bd= newBigDecimal(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 classMain {public staticBigInteger num;public static voidmain(String args[]) {

Scanner cin= newScanner(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 加法

importjava.math.BigDecimal;importjava.util.Scanner;import java.util.*;public classMain {public static voidmain(String[] args) {

Scanner cin= newScanner(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)<0)//此时由于a

{

System.out.println("a

}if(b.equals(c))//此时由于b==c,则返回值等于0;

{

System.out.println("b==c");

}if(d.compareTo(c)>0)//此时由于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方法

00a8be076b0aec42b4fafe2ab28b6bea.png

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 

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 

Arrays.sort(a);

for (int i = 0; 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中的结构体的排序)

packagezoj3380;import java.io.*;importjava.lang.reflect.Array;import java.text.*;import java.util.*;import java.math.*;public classMain

{public static voidmain(String[] args) {

Scanner scanner= newScanner(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]= newstudent(a, b, s);

}//int len = students.;

Arrays.sort(students,0, n, newAcomparator());

//排序必须保证每个里面都有元素,要不然会报错。//Arrays.sort(students, new Acomparator());

for(int i = 0; i < n; i++) {

System.out.println(students[i].getA());

}

}

}classstudent {private inta, b;privateString s;public student(int a, intb, String s) {this.a =a;this.b =b;this.s =s;

}public intgetA() {returna;

}public void setA(inta) {this.a =a;

}public intgetB() {returnb;

}public void setB(intb) {this.b =b;

}publicString getS() {returns;

}public voidsetS(String s) {this.s =s;

}

}class Acomparator implementsComparator {

@Overridepublic intcompare(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;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值