java小学生加减法_大数加减法 - java实现

计算机处理的各种数据类型都有个范围,超出范围的就处理不了。

如果做超大数运算加减乘除,普通方法肯定是不行的,那么我们遇到大数的运算怎么处理呢?今天介绍一种大数加减乘除运算的方法

思路:

1. 将两个特大的整数利用字符数组作为存储介质。

2. 逐位计算 遍历结果逢十进一。

3. 对存储结果的数组进行翻转处理。

下面上代码:

public class LargeIntSub {

public static void main(String[] args) {

String a="6789";

String b="123";

int []pa=stringToInts(a);

int []pb=stringToInts(b);

String result_sub=sub(pa,pb);

System.out.println("sub result is:"+result_sub);

}

public static int[] stringToInts(String s){

int[] n = new int[s.length()];

for(int i = 0;i

n[i] = Integer.parseInt(s.substring(i,i+1));

}

return n;

}

public static String sub(int []a,int []b){

StringBuffer sb=new StringBuffer();

boolean flag=false;

if(a.length

int c[]=a;

a=b;b=c;

flag=true;

}

int a_len= a.length-1;

int b_len=b.length-1;

int degrade=0;

while(a_len>=0||b_len>=0){

int temp=0;

if(a_len>=0&&b_len>=0){

if((a[a_len]-degrade)

temp=a[a_len]+10-b[b_len]-degrade;

degrade=1;

}else{

temp=a[a_len]-b[b_len]-degrade;

}

}else if(a_len>=0){

temp=a[a_len]-degrade;

degrade=0;

}

sb.append(temp+"");

a_len--;b_len--;

}

if(flag){

return getNum(sb.append("-").reverse());

}

return getNum(sb.reverse());

}

public static String getNum(StringBuffer sb){

while(sb.length() > 1 && sb.charAt(0) == '0') {

sb.deleteCharAt(0);

}

return sb.toString();

}

}

hdu 1002大数(Java)

A + B Problem II Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

字串数_hdu_1261(大数极致).java

字串数 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submis ...

两个大数相乘-Java

两个字符串表示两个非常大的数,请设计算法计算这两个大数的乘积,结果用字符串表示.例如S1="7832974972840919321747983209327",S2="19 ...

大明A+B(hdu1753)大数,java

大明A+B Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submissi ...

hdu 1023 卡特兰数《 大数》java

Train Problem II Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

用字符串模拟两个大数相加——java实现

问题: 大数相加不能直接使用基本的int类型,因为int可以表示的整数有限,不能满足大数的要求.可以使用字符串来表示大数,模拟大数相加的过程. 思路: 1.反转两个字符串,便于从低位到高位相加和最高位 ...

poj 1503 大数相加(java)

代码: import java.math.*; import java.util.Scanner; public class Main { public static void main(String ...

Multiply Strings 大数相乘 java

先贴上代码 public String multiply(String num1, String num2) { String str = ""; StringBuffer sb ...

POJ 2756 Autumn is a Genius 大数加减法

Description Jiajia and Wind have a very cute daughter called Autumn. She is so clever that she can d ...

随机推荐

PLSql Oracle配置

1.安装Oracle客户端或者服务端 2.配置环境变量 <1>.一般如果安装了Oracle客户端或者服务端的话,在环境变种的Path中有Oracle的安装路径(计算机-属性-高级系统设置- ...

几款主流PHP框架的优缺点评比

PHP是一种在国内外都比较流行的开源服务器端脚本开发语言.能够适应大中小型项目的开发需求.我们将在这篇文章中向大家介绍几款主流PHP框架及其相关优缺点评比,作为一个参考分享给朋友们. 主要参考的PHP ...

转一篇简易易懂的android回调的实现---&gt&semi;(转的)

回调机制在 Android 监听用户界面操作中的体现   本文讨论以下两个内容: 1. 回调函数 2. 回调机制在 Android框架 监听用户界面操作中的作用 一 回调函数 回调函数就是一个通过函数 ...

PHP和Golang使用Thrift1和Thrift2访问Hbase0&period;96&period;2&lpar;ubuntu12&period;04&rpar;

目录: 一.Thrift1和Thrift2的简要介绍 1) 写在前面 2) Thrift1和Thrift2的区别  二.Thrift0.9.2的安装 1) 安装依赖插件 2) Thrift0.9.2的 ...

java并发的理解

我认为并发大体上分为两种情况 1,多个线程或者进程访问公共资源,比如12306 2,多个线程访问同一个实例变量,比如tomcat 多个请求的线程访问同一个单例bean,如果bean是有状态的,就可能出 ...

P6 Professional Installation and Configuration Guide &lpar;Microsoft SQL Server Database&rpar; 16 R1

P6 Professional Installation and Configuration Guide (Microsoft SQL Server Database) 16 R1       May ...

AE 将地图导出为图片的两种方法

在ArcGIS的开发中,我们经常需要将当前地图打印(或是转出)到图片文件中.将Map或Layout中的图象转出有两种方法,一种为通过IActiveView的OutPut函数,另外一种是通过IExpor ...

delphi 仅带下划线的TEdit控件

在做录入框的时候,很希望有一个只带下划线的文本框,网上介绍的很多,有自己做组件的,须不知Delphi下只需要简单设置几个属性即可达到目的.

C&num;多态联系之虚方法

class Class1 { static void Main(string[] args) { YuanGong yg = new YuanGong(); JingLi jl = new JingL ...

Promise初体验

想通过回调函数做一个动画效果:三个小球依次运动,第一个小球运动到指定位置后回调第二个小球运动,依次类推,效果如图所示: 到第三个小球到达指定位置再回调,让第二个小球往回移动,直到最后一个小球回到原位: ...

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值