java string做除法_如果用java来实现传统方式的除法,用String来保存结果,想精确多少位都行,那改怎么做?...
我会加分的,提个思路都行,目前做了个乘法和加法,但是现在对除法没有什么思路。以下是我编写的功能:publicclassCalculator{publicstaticStringmulti(Strings1,Strings2){if(s1==nu...
我会加分的,提个思路都行,目前做了个乘法和加法,但是现在对除法没有什么思路。以下是我编写的功能:
public class Calculator {
public static String multi(String s1,String s2){
if(s1 == null || s2 == null){
return "0";
}
char c1[] = s1.toCharArray();
char c2[] = s2.toCharArray();
for(int i=0;i
if(i==0){
if(c1[i] !='-' && c1[i] != '+' && !(c1[i]>='0' && c1[i]<='9')){
throw new RuntimeException("你要计算的数字不合法!");
}
}else{
if(!(c1[i]>='0' && c1[i]<='9')){
throw new RuntimeException("你要计算的数字不合法!");
}
}
}
for(int i=0;i
if(i==0){
if(c2[i] !='-' && c2[i] != '+' && !(c2[i]>='0' && c2[i]<='9')){
throw new RuntimeException("你要计算的数字不合法!");
}
}else{
if(!(c2[i]>='0' && c2[i]<='9')){
throw new RuntimeException("你要计算的数字不合法!");
}
}
}
String sign1 = "";
String sign2 = "";
if(s1.charAt(0)>='0' && s1.charAt(0)<='9'){
sign1="+";
}else{
sign1 = s1.substring(0,1);
s1 = s1.substring(1);
}
if(s2.charAt(0)>='0' && s2.charAt(0)<='9'){
sign2 = "+";
}else{
sign2 = s2.substring(0,1);
s2 = s2.substring(1);
}
StringBuffer buffer = new StringBuffer();
Long[][] number = new Long[s2.length()][s1.length()+s2.length()];
for(int i=0;i
int t = Integer.parseInt(s2.substring(s2.length()-(i+1),s2.length()-i));
int temp = 0;
int count = 0;
for(int j=number[i].length-1;j>=0;j--){
if(count
int cols = Integer.parseInt(s1.substring(s1.length()-(count+1),s1.length()-count));
number[i][j-i] = new Long( ((cols*t)%10)+temp);
temp = cols*t/10;
}else if(temp !=0){
number[i][j-i] = new Long(temp);
temp = 0;
}
count++;
}
}
int temp = 0;
for(int i=(s1.length()+s2.length())-1;i>=0;i--){
int t = 0;
for(int j=0;j
if(number[j][i] != null){
t+=number[j][i];
}
}
buffer.append(""+(t%10+temp));
temp = t/10;
}
buffer = buffer.reverse();
String result = buffer.toString();
while(result.charAt(0) == '0' && result.length() !=1){
result = result.substring(1);
}
if(!sign1.equals(sign2)){
result = "-"+result;
}
return result;
}
public static String add(String s1,String s2){
//因为字数超过限制,所以没有上传
return "还没有实现!";
}
public static void main(String[] args){
System.out.println(Calculator.add("-755334311424342","-9222012"));
BigInteger big1 = new BigInteger("-755334311424342");
BigInteger big2 = new BigInteger("-9222012");
System.out.println(big1.add(big2)); System.out.println(Calculator.multi("-23423403504534534563","23222222222222222222222222222222222"));
}
}
-----------result-------------
-755334320646354
-755334320646354
-543943470131721017861316196131010101010101010101010101019518951801921211121215658986
展开
java string做除法_如果用java来实现传统方式的除法,用String来保存结果,想精确多少位都行,那改怎么做?...相关推荐
- 怎么用java做日历_怎么用java做日历?实例讲解
Java是一种高级语言,可以用到很多领域中,这不,用java还可以做日历,那么怎么用java做日历?今天我们就给大家讲解一下用java做日历的方法,学会大家也可以做一个日历出来! 我们需要用到两个类: ...
- java string的作用_浅谈java String不可变的好处
一.java内部String类的实现: java 8: public final class String implements java.io.Serializable, Comparable, C ...
- java 做日历_如何用java做日历
展开全部 看看下面代码: import java.awt.*; import java.awt.event.*; import java.util.Calendar; import javax.swi ...
- java设置pdf加密_如何使用Java对PDF进行加密,密码保护和设置受限权限
java设置pdf加密 Today we will be looking at the document workhorse that is PDF, and how to programmatica ...
- java程序员封闭_变态级JAVA程序员面试32问(转)
第一,谈谈final, finally, finalize的区别. final?修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承.因此一个类不能既被声明为 ...
- java 代码 内存泄露_如何用Java编写一段代码引发内存泄露
Q:刚才我参加了面试,面试官问我如何写出会发生内存泄露的Java代码.这个问题我一点思路都没有,好囧. A1:通过以下步骤可以很容易产生内存泄露(程序代码不能访问到某些对象,但是它们仍然保存在内存中) ...
- java不同垃圾回收器_细述 Java垃圾回收机制→Types of Java Garbage Collectors
本文非原创,翻译自Types of Java Garbage Collectors 在Java中为对象分配和释放内存空间都是由垃圾回收线程自动执行完成的.和C语言不一样的是Java程序员不需要手动写垃 ...
- java获取机器号_(转)JAVA获得机器码的实现
http://yangshangchuan.iteye.com/blog/2012401 首先,定义了一个统一的接口,以支持不同操作系统不同实现的透明切换: Java代码 收藏代码 /** *生成机 ...
- java整数的因式分解_如何在Java中找到整数的质数-因式分解
java整数的因式分解 编程课程中的常见家庭作业/任务之一是关于Prime Factorization. 要求您编写一个程序以找到给定整数的素因子 . 一个数字的素数因子是将精确地除以给定数字的所有素 ...
最新文章
- IDEA/Git 设置多个push远程仓库或者同时提交多个push仓库
- No module named 'mxnet.gluon'
- Redis java使用
- 方法内联在JVM中有多积极?
- Android自定义对话框(Dialog)位置,大小
- 【比赛】智源-知乎联合发布大规模用户邀请回答数据集,同步开启10万元竞赛...
- 【洛谷 1027】双重回文数
- Spring Cloud Config分布式配置中心(学习总结)
- 号称是世界最大的电子书图书馆ZLibrary
- 给推荐系统加入先验知识的方法总结
- 华为android是什么文件夹,华为手机里的文件夹代表什么?哪些可以清除?看完秒懂!...
- Vue的生命周期的介绍
- py233基于 python的诚交大学生二手交易平台Django#毕业设计
- WIN7 安装 SQL2000
- 家用双wan口路由器推荐_教你如何配置双WAN口路由器
- mac玩rust用什么画质_Steam Mac/Windows游戏性能、画质对比
- TypeError: argument of type ‘NoneType‘ is not iterable
- 企业员工流动大难管理?低代码+人事管理系统轻松掌控员工档案信息!
- 编程学不进去?如何才能拯救你的编程能力?
- 云计算技术及应用选择题
热门文章
- java订单类_基于Java创建一个订单类代码实例
- python中scrapy可以爬取多少数据_python中scrapy框架爬取携程景点数据
- python pep8模块_读懂PEP8,让你的Python代码更加优雅
- linux下c语言读取roed文件,如何在Linux系统上安装Android4.4.docx
- php 获取系统环境变量,java读取操作系统环境变量
- oracle数据库连接名是什么,连接到Oracle数据库的几种命名方式
- sed教程入门与实例练习(一)
- centos下安装pip时失败:
- Sizzle.selectors.match/leftMatch
- msbuild构建时用SVN修改版本号代替AssemblyVersion的Revision版本号