博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
华为OJ高精度数的加减法
阅读量:4298 次
发布时间:2019-05-27

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

import java.util.Scanner;import javax.swing.text.html.HTMLDocument.HTMLReader.IsindexAction;public class Main {
public static String add(String str1, String str2) { if (str1.length() < str2.length()) { String temp = str1; str1 = str2; str2 = temp; } int index = 0; int flag = 0; char[] result = new char[str1.length() > str2.length() ? str1.length() : str2.length()]; while (str1.length() > index && str2.length() > index) { int sum = str1.charAt(str1.length() - index - 1) + str2.charAt(str2.length() - index - 1) - '0' + flag; if (sum > '9') { result[result.length - index - 1] = (char) (sum - 10); flag = 1; } else { result[result.length - index - 1] = (char) sum; flag = 0; } index++; } if (str1.length() >= index) { for (int i = index; i < str1.length(); i++) { int sum = str1.charAt(str1.length() - index - 1) + flag; if (sum > '9') { result[result.length - index - 1] = (char)(sum - 10); flag = 1; }else { result[result.length - index - 1] = (char)(sum); flag = 0; } index++; } } if (flag == 1) { return "1" + new String(result); }else { return new String(result); } } public static String subtract(String str1, String str2){ String sign = ""; if (str1.length() < str2.length()) { String temp = str1; str1 = str2; str2 = temp; sign = "-"; }else if (str1.length() == str2.length()) { if (str1.compareTo(str2)<0) { String temp = str1; str1 = str2; str2 = temp; sign = "-"; } } int index = 0; int flag = 0; char[] result = new char[str1.length()>str2.length()?str1.length():str2.length()]; while (str1.length()>index && str2.length()>index) { int sum = str1.charAt(str1.length()-index-1)-str2.charAt(str2.length()-index-1)+'0' - flag; if (sum<'0') { flag = 1; result[result.length-index-1] = (char)(sum + 10); }else { flag = 0; result[result.length-index-1] = (char)(sum); } index++; } if (str1.length()>=index) { for (int i = index; i < str1.length(); i++) { int sum = (char)(str1.charAt(str1.length()-index-1)-flag); if (sum<'0') { result[result.length-index-1] = (char)(sum+10); flag = 1; }else { result[result.length-index-1] = (char)sum; flag = 0; } index++; } } return sign + new String(result); } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String str1 = scanner.next(); String str2 = scanner.next(); if (str1.contains("-") && str2.contains("-")) { System.out.println("-" + add(str1.substring(1), str2.substring(1))); } else if (!str1.contains("-") && !str2.contains("-")) { System.out.println(add(str1, str2)); } else { String result = ""; if (str1.contains("-")) { result = subtract(str2,str1.substring(1)).replace("0", ""); if (result.length() == 0) { result = "0"; } System.out.println(result); } else { result = subtract(str1, str2.substring(1)).replace("0", ""); if (result.length() == 0) { result = "0"; } System.out.println(result); } } }}

转载地址:http://qsnws.baihongyu.com/

你可能感兴趣的文章
scrapy运行
查看>>
XPATH入门
查看>>
python爬虫 CSS选择器
查看>>
正常关闭java程序
查看>>
查看linux核心数
查看>>
数据结构与算法三: 数组
查看>>
Activiti工作流会签二 启动流程
查看>>
Activiti工作流会签三 撤销,审批,驳回
查看>>
Oauth2方式实现单点登录
查看>>
CountDownLatch源码解析加流程图详解--AQS类注释翻译
查看>>
ES相关度评分
查看>>
我们一起做一个可以商用的springboot脚手架
查看>>
idea在搭建ssm框架时mybatis整合问题 无法找到mapper
查看>>
java设计基本原则----单一职责原则
查看>>
HashMap的实现
查看>>
互斥锁 synchronized分析
查看>>
java等待-通知机制 synchronized和waity()的使用实践
查看>>
win10 Docke安装mysql8.0
查看>>
docker 启动已经停止的容器
查看>>
order by 排序原理及性能优化
查看>>