两个大数之间的相关运算

 1 import java.util.Scanner;
 2
 3 /*
 4  进行大数相加,只能对两个正数进行相加
 5 */
 6
 7 public class BigNumber
 8 {
 9     public static void main(String[] args)
10     {
11         Scanner scan=new Scanner(System.in);
12         String a,b;
13         while (scan.hasNext())
14         {
15             BigNumber big=new BigNumber();
16
17             a=scan.nextLine();
18             b=scan.nextLine();
19
20             System.out.println(big.bigNumberAdd(a,b));
21         }
22     }
23
24     public String bigNumberAdd(String x,String y)
25     {
26         //String result=null;
27
28         char[] a=x.toCharArray();
29         char[] b=y.toCharArray();
30
31         int lenA=a.length;
32         int lenB=b.length;
33
34         int len=lenA>lenB?lenA:lenB;
35         int[] result=new int[len+1];
36
37         //字符串反转
38         char[] A=new char[lenA];
39         char[] B=new char[lenB];
40         for (int i=0;i<lenA;i++)
41         {
42             A[i]=a[lenA-i-1];
43         }
44
45         for (int j=0;j<lenB;j++)
46         {
47             B[j]=b[lenB-j-1];
48         }
49
50         //对应数字相加
51         int aInt,bInt;
52         for (int i=0;i<len+1;i++)
53         {
54             aInt=i<lenA?A[i]-‘0‘:0;
55             bInt=i<lenB?B[i]-‘0‘:0;
56
57             result[i]=aInt+bInt;
58         }
59
60         //将对应数字结果超过10
61         for (int j=0;j<len+1;j++)
62         {
63             if (result[j]>=10)
64             {
65                 //将对应位置与进位相加,并进行保存
66                 result[j+1]=result[j]/10+result[j+1];
67                 result[j]=result[j]%10;
68             }
69         }
70
71         //将结果对应为0的位置取消掉
72         StringBuilder sb=new StringBuilder();
73         boolean flag=true;//防止结果集中的地位出现0
74         for (int i=len;i>=0;i--)
75         {
76             if (result[i]==0&&flag)
77             {
78
79             }
80             else
81             {
82                 sb.append(result[i]);
83                 flag=false;
84             }
85         }
86
87         return sb.toString();
88         //return result;
89     }
90 }
时间: 2024-12-11 02:08:31

两个大数之间的相关运算的相关文章

栈实现两个大数相加

import java.util.Scanner; import java.util.Stack; public class JavaDemo { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); /** * 第一个大数入栈 */ System.out.println("输入第一个大数:"); String firstNum = scanner.nextLine(); I

【Java】两个ArrayList之间求交并补

同样的方法应该也使用在<[Java]Java中的Collections类--Java中升级版的数据结构>(点击打开链接)中提及到Java中的各类集合,这里拿各位编程最常用的ArrayList做例子.这个东西除了用来做可变形数组以外,有时候还会出现要在两个ArrayList之间进行集合运算,我在这里举出最常见的求交并补的例子,其余的复杂的集合运算,请自己打开<离散数学>或者<数理逻辑>一书慢慢推导吧.我们是程序猿,不是数学家,要在两个ArrayList之间求交并补已经很少

js实现的计算两个时间之间的时间差

js实现的计算两个时间之间的时间差:在实际应用中,需要计算两个时间点之间的差距,一般来说都是计算当前时间和一个指定时间点之间的差距,并且有时候需要精确到天.小时.分钟和秒,下面就简单介绍一下如何实现此效果.代码如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.

matlab矩阵合并及相关运算

1.matlab允许向量(和矩阵)合并,且matlab提供了两种合并方式,[a,b]和[a;b],两者的结果是不一样的. a=rand(2,3): b=rand(2,3): c=[a;b]: d=[a,b]: c的结果是将b整体合并到a 的下边,而d的结果是整体将b合并到a 的右边. 2.创建等差向量组 a=[1:2:11] 注意涉及到向量内部对应数据之间的运算时一定要用点运算符号,(.)例如,求表达式b=a^2时应该写作 b=a.^2 也可以利用linspace来创建等差向量,linspace

js 时间函数 及相关运算大全

js 时间函数 及相关运算大全 var myDate = new Date(); myDate.getYear();        //获取当前年份(2位) myDate.getFullYear();    //获取完整的年份(4位,1970-????) myDate.getMonth();       //获取当前月份(0-11,0代表1月) myDate.getDate();        //获取当前日(1-31) myDate.getDay();         //获取当前星期X(0-

java多线程并发——Exchanger 两个任务之间交换对象

package org.rui.thread.newc; import java.util.List; import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.Exchanger; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurre

pyton 编写脚本检测两台主机之间的通信状态,异常邮件通知

最近客户有一个需求要检测两台服务器之间的通信状态.要是通信是失败就需要邮件通知相关人.本来想用shell来实现,shell脚本ping 对端服务器很简单,但是shell的邮件发送比较麻烦,于是使用python实现并且用smtplib模块可以快速实现邮件的发送. 功能如下:1秒钟ping一次目标地址.代码中把你的邮箱改为自己的就可以, 代码: #coding:utf-8 import socket import smtplib import email.MIMEText import email.

计算两个日期之间相差几天(Date类型与String类型互相转换)

一:计算两个日期之间相差几天 1 /** 2 * 3 */ 4 package com.hlcui.date; 5 6 import java.text.ParseException; 7 import java.text.SimpleDateFormat; 8 import java.util.Calendar; 9 import java.util.Date; 10 11 import org.junit.Test; 12 13 /** 14 * @author Administrator

两个页面之间的通信

今天要给大家说的是两个不同页面之间的通信,通过一个拖拽demo来模拟: 首先,写好基础的拖拽代码: <script> window.onload = function() { var oDiv = document.getElementById('div'); oDiv.onmousedown = function(ev) { var ev = window.event || ev; var disX = ev.clientX - oDiv.offsetLeft; var disY = ev.