当前位置: 首页 > news >正文

网站备案转服务器国外做旅游攻略的网站

网站备案转服务器,国外做旅游攻略的网站,什么网站模板,网站域名和备案公司可以不一样么ZZHow(ZZHow1024) 💡 仅用于了解处理高精度运算的原理。 Java 中可使用大整数类(BigInteger)和大浮点数类(BigDecimal)处理高精度的运算。 非负整数的高精度加法 例题:AcWing 791. 高精度加法 数组实现 import java.util.Scanner; import java.util.…

@ZZHow(ZZHow1024)

Java 中可使用大整数类(BigInteger)和大浮点数类(BigDecimal)处理高精度的运算。

非负整数的高精度加法

  • 例题:AcWing 791. 高精度加法

数组实现

import java.util.Scanner;
import java.util.ArrayList;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);ArrayList<Integer> A = new ArrayList<>();ArrayList<Integer> B = new ArrayList<>();// 以字符串的形式读入,如:a = "123456";String a = scanner.next();String b = scanner.next();// 将字符串按位切割转存到可变数组中,如:A = [6, 5, 4, 3, 2, 1];for(int i = a.length() - 1; i >= 0; i--)A.add(a.charAt(i) - '0');for(int i = b.length() - 1; i >= 0; i--)B.add(b.charAt(i) - '0');ArrayList<Integer> C = add(A, B);for(int i = C.size() - 1; i >= 0; i--)System.out.print(C.get(i));}// C = A + Bpublic static ArrayList<Integer> add(ArrayList<Integer> A, ArrayList<Integer> B) {ArrayList<Integer> C = new ArrayList<>();// 进位int t = 0;for(int i = 0; i < A.size() || i < B.size(); i++) {if(i < A.size())t += A.get(i);if(i < B.size())t += B.get(i);C.add(t % 10);t /= 10;}if(t != 0)C.add(1);return C;}
}

大整数类实现

import java.util.Scanner;
import java.math.BigInteger;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);BigInteger a = scanner.nextBigInteger();BigInteger b = scanner.nextBigInteger();System.out.println(a.add(b));}
}

非负整数的高精度减法

  • 例题:AcWing 791. 高精度加法

数组实现

import java.util.Scanner;
import java.util.ArrayList;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);ArrayList<Integer> A = new ArrayList<>();ArrayList<Integer> B = new ArrayList<>();// 以字符串的形式读入,如:a = "123456";String a = scanner.next();String b = scanner.next();// 将字符串按位切割转存到可变数组中,如:A = [6, 5, 4, 3, 2, 1];for(int i = a.length() - 1; i >= 0; i--)A.add(a.charAt(i) - '0');for(int i = b.length() - 1; i >= 0; i--)B.add(b.charAt(i) - '0');if(cmp(A, B)) {ArrayList<Integer> C = sub(A, B);for(int i = C.size() - 1; i >= 0; i--)System.out.print(C.get(i));} else {ArrayList<Integer> C = sub(B, A);System.out.print("-");for(int i = C.size() - 1; i >= 0; i--)System.out.print(C.get(i));}}// 判断 A 和 B 的大小(A >= B 返回 true,A < B 返回 false)public static boolean cmp(ArrayList<Integer> A, ArrayList<Integer> B) {if(A.size() != B.size())return A.size() > B.size();for(int i = A.size() - 1; i >= 0; i--)if(A.get(i) != B.get(i))return A.get(i) > B.get(i);return true;}// C = A - Bpublic static ArrayList<Integer> sub(ArrayList<Integer> A, ArrayList<Integer> B) {ArrayList<Integer> C = new ArrayList<Integer>();// 借位int t = 0;for(int i = 0; i < A.size(); i++) {t = A.get(i) - t;if(i < B.size())t -= B.get(i);C.add((t + 10) % 10);if(t < 0)t = 1;elset = 0;}// 去除无效0while(C.size() > 1 && C.get(C.size() - 1) == 0)C.remove(C.size() - 1);return C;}
}

大整数类实现

import java.util.Scanner;
import java.math.BigInteger;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);BigInteger a = scanner.nextBigInteger();BigInteger b = scanner.nextBigInteger();System.out.println(a.subtract(b));}
}

非负整数的高精度乘法

  • 例题:AcWing 793. 高精度乘法

数组实现

import java.util.Scanner;
import java.util.ArrayList;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);// 以字符串的形式读入,如:a = "123456";String a = scanner.next();int b = scanner.nextInt();// 将字符串按位切割转存到可变数组中,如:A = [6, 5, 4, 3, 2, 1];ArrayList<Integer> A = new ArrayList<>();for (int i = a.length() - 1; i >= 0; i--)A.add(a.charAt(i) - '0');ArrayList<Integer> C = mul(A, b);for (int i = C.size() - 1; i >= 0; i--) {int out = C.get(i);System.out.print(out);}}// C = A * bpublic static ArrayList<Integer> mul(ArrayList<Integer> A, int b) {ArrayList<Integer> C = new ArrayList<>();// 进位int t = 0;for (int i = 0; i < A.size() || t != 0; i++) {if (i < A.size())t += A.get(i) * b;C.add(t % 10);t /= 10;}// 去除无效0while (C.size() > 1 && C.get(C.size() - 1) == 0)C.remove(C.size() - 1);return C;}
}

大整数类实现

import java.util.Scanner;
import java.math.BigInteger;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);BigInteger a = scanner.nextBigInteger();BigInteger b = scanner.nextBigInteger();System.out.println(a.multiply(b));}
}

非负整数的高精度除法

  • 例题:AcWing 794. 高精度除法

数组实现

import java.util.Scanner;
import java.util.ArrayList;
import java.util.Collections;
import java.util.concurrent.atomic.AtomicInteger;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);// 以字符串的形式读入,如:a = "123456";String a = scanner.next();int b = scanner.nextInt();// 将字符串按位切割转存到可变数组中,如:A = [6, 5, 4, 3, 2, 1];ArrayList<Integer> A = new ArrayList<>();for (int i = a.length() - 1; i >= 0; i--) {A.add(a.charAt(i) - '0');}AtomicInteger r = new AtomicInteger();ArrayList<Integer> C = div(A, b, r);for (int i = C.size() - 1; i >= 0; i--) {System.out.print(C.get(i));}System.out.println("\n" + r);}// A / b,商C余rpublic static ArrayList<Integer> div(ArrayList<Integer> A, int b, AtomicInteger r) {ArrayList<Integer> C = new ArrayList<>();// 余数r.set(0);for (int i = A.size() - 1; i >= 0; i--) {r.set(r.get() * 10 + A.get(i));C.add(r.get() / b);r.set(r.get() % b);}Collections.reverse(C);// 去除无效0while (C.size() > 1 && C.get(C.size() - 1) == 0)C.remove(C.size() - 1);return C;}
}

大整数类实现

import java.util.Scanner;
import java.math.BigInteger;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);BigInteger a = scanner.nextBigInteger();BigInteger b = scanner.nextBigInteger();System.out.println(a.divide(b));System.out.println(a.mod(b));}
}

补充 Java 大整数类的常用方法

基本运算

  • 加:a.add(b);
  • 减:a.subtract(b);
  • 乘:a.multiply(b);
  • 除:a.divide(b);
  • 取模:a.mod(b);
  • 求余:a.remainder(b);
  • 幂:a.pow(n);
  • 取绝对值:a.abs();
  • 取相反数:a.negate();
  • 比较大小

比较大小

  • a.compareTo(b);
    • 返回 1:大于
    • 返回 0:等于
    • 返回 -1:小于

常量

  • 0:BigInteger.ZERO;
  • 1:BigInteger.ONE;
  • 10:BigInteger.TEN;

类型转换

  • 转换为二进制补码形式:a.toByteArray();
  • 转换为十进制字符串形式:a.toString();
  • 转换为 x 进制字符串形式:a.toString(x);
  • 转换为 int:a.intValue();
  • 转换为 long:a.longValue();
  • 转换为 flout:a.floatValue();
  • 转换为 double:a.doubleValue();
http://www.dtcms.com/a/433154.html

相关文章:

  • 如何选择大良网站建设网站备案麻烦
  • 节能环保公司网站建设成都网站快速排名优化
  • 绥化网站建设公司edu域名网站
  • 北京外贸网站设计备案网易严选的网站建设
  • 网站建设与推广的实训报告c2c电子商务网站建设
  • 网站培训费用网站开发中所需要的绘图工具
  • 购物网站建设包括哪些链天网站建设
  • 宁波建网站找哪家北京网站优化推广分析
  • 济源网站维护上海做网站较好的公司
  • 专业公司网站建设滁州网站公司
  • 枣庄建设工程管理局网站新闻列表做的最好的网站
  • 小规模公司怎么注销上海网站优化公司排名
  • 外贸网站如何做的好天蒙旅游区网络营销推广方法
  • 桓台建设局网站石家庄有哪些互联网公司
  • 张家港网站 设计制作北京二级建造师查询系统
  • 承德网站建设有限公司做电影海报在哪个网站好
  • 中国城乡住房建设部网站网站百度统计表格怎么做
  • 景区宣传网站制作模板天元建设集团有限公司六公司
  • 微信网站改版价格网站主页排版
  • 技术好的手机网站建设服务器做网站用什么系统
  • 网站建设找谁无锡网站制作工具
  • 免费用搭建网站购买网站平台如何做分录
  • 千秋网络是家西安做网站的公司成都软件公司前100强
  • 印刷报价网站源码下载网站建设项目规划书目录
  • 全国新增确诊病例广州百度首页优化
  • 鄞州区住房和城乡建设局网站河北建设厅网站上不去
  • 绵阳低价网站建设自动化毕设题目网站开发
  • 水务 网站建设叶文语 厦门建设局
  • 公司怎么注册官方网站网站开发全流程图
  • 做网站开发哪里可以接单河北 全部阳性了