ACM中的java应用
发布日期:2021-05-14 13:34:51 浏览次数:13 分类:精选文章

本文共 5158 字,大约阅读时间需要 17 分钟。

Java BigInteger���BigDecimal���������������������

1. Java���������������

���Java������������������������������������BigInteger���BigDecimal���������������������������������������������������������������������������������������������������������Java���������������������������������������������


2. BigInteger���������������

2.1������������������

  • add��� BigInteger add = new BigInteger.valueOf(5); add = add.add(new BigInteger.valueOf(3));
    ���������8
  • subtract���_uint subtract = new BigInteger.valueOf(5); subtract = subtract.subtract(new BigInteger.valueOf(3));
    ���������2
  • multiply���BigInteger multiply = new BigInteger.valueOf(5); multiply = multiply.multiply(new BigInteger.valueOf(3));
    ���������15
  • divide���BigInteger divide = new BigInteger.valueOf(45); divide = divide.divide(new BigInteger.valueOf(3));
    ���������15

2.2������������������������

// ���������������������BigInteger
BigInteger number = BigInteger.valueOf(123); // ������������������
// ���������������������BigInteger���������������
BigInteger bigNumber = new BigInteger("123456789012345678901234567890");

2.3������������

  • add method
    String numberStr = "123456789"; // ���������������������
    BigInteger bigNumber = BigInteger.valueOf(numberStr);

2.4������������

  • ������������������������������������BigInteger
    BigInteger bigDecimal = new BigInteger("25", 10); // ���������������

3. BigDecimal������������

3.1������������

  • ���������������
    String valueString = "123.45";
    BigDecimal bigDecimal = new BigDecimal(valueString);
  • ���������������
    BigDecimal a = new BigDecimal("0.000123");
    BigDecimal b = new BigDecimal("0.001230");
    BigDecimal c = a.add(b);

    ������������������������������������

3.2������������������

  • ������
    BigDecimal a = new BigDecimal("1.3");
    BigDecimal b = new BigDecimal("2.6");
    BigDecimal c = a.add(b); // ���������4.0
  • ������
    BigDecimal number = new BigDecimal("9");
    BigDecimal result = number.divide(new BigDecimal("3")); // 3

3.3���������������������

  • ������������
    BigDecimal value = new BigDecimal("0.12345");
    value.setScale(4); // ���������������������������
  • ������������������
    BigDecimal rounded = value.divideAndMultiplyByTenThousands().setScale(0, RoundingMode.HALF_UP);

4. ���������������������������

4.1������������

import java.math.BigInteger;
public class JieCheng {
public static void main(String[] args) {
int maxn = 10005;
BigInteger result = BigInteger.valueOf(1);
for (int i = 2; i <= maxn; i++) {
result = result.multiply(BigInteger.valueOf(i));
}
System.out.println(result);
}
}

4.2������������������

public class Fibonacci {
static BigInteger fibonacci(int n) {
if (n <= 4) return BigInteger.valueOf(1);
BigInteger f1 = BigInteger.valueOf(1);
BigInteger f2 = BigInteger.valueOf(1);
BigInteger f3 = BigInteger.valueOf(1);
BigInteger f4 = BigInteger.valueOf(1);
if (n <= 4) return f1;
for (int i = 5; i <= n; i++) {
return f4;
}
}
public static void main(String[] args) {
while (true) {
int n = scanner.nextInt();
BigInteger result = fibonacci(n);
System.out.println(result);
}
}
}

4.3���������

import java.math.BigDecimal;
public class RecursiveNumber {
public static BigDecimal calculate(int n) {
if (n == 1) return BigDecimal.valueOf(1);
BigDecimal a = calculate(n-1);
BigDecimal b = calculate(n-2);
BigDecimal c = calculate(n-3);
return a.add(b);
}
public static void main(String[] args) {
try {
int input = Integer.parseInt(args[0]);
BigDecimal result = calculate(input);
System.out.println(result);
} catch (NumberFormatException e) {
System.out.println("���������������������");
}
}
}

5. ������������������������

import java.math.BigDecimal;
import java.io.IOException;
import java.util.Scanner;
import java.ioenderror;
public class OctalToDecimal {
public static void main(String[] args) {
try {
while (true) {
String str = scanner.nextLine();
int i, len = str.length();
BigDecimal temp, sum, ans, num;
for (i = 2; i < len; i++) {
int digit = str.charAt(i) - '0';
temp = BigDecimal.valueOf(8);
sum = BigDecimal.ONE;
num = BigDecimal.valueOf(digit);
sum = sum.multiply(temp.pow(i-1));
ans = ans.add(num.divide(sum));
}
System.out.println("���������������������" + str + ", ���������" + ans + "���������������");
}
} catch (NumberFormatException | EndOutOfBoundsException e) {
System.out.println("���������������������������������������������������");
}
}
}

6. ������

������������������������������������������BigInteger���BigDecimal������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

上一篇:机器学习_Python中Gradient Boosting Machine(GBM)学习笔记
下一篇:训练总结报告

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年04月15日 05时27分37秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章