大数加法【顺序栈】

大数加法问题:编程实现两个大数的加法运算

思路:

1.根据加法的规则我们都是从个位开始加的,所以这里可以使用栈

2.记录进位,下次相加的时候加上

3.若进位最后还有剩余,要添加到字符串中

4.逆序输出

package 大数加法;

import java.util.Scanner;

public class BigIntegerDemo {
	public static String BigIntegerAdd(String A,String B) {
		int lengthA = A.length()-1;
		int lengthB = B.length()-1;
		StringBuffer buffer = new StringBuffer();//存放结果的栈
		int temp = 0;//存放进制
		while(lengthA>=0 && lengthB>=0) {
			int result = Integer.valueOf(String.valueOf(A.charAt(lengthA)))+Integer.valueOf(String.valueOf(B.charAt(lengthB)))+temp;
			buffer.append(result%10);
			temp = result/10;
			lengthA--;
			lengthB--;
		}
		while(lengthA>=0) {
			int result = temp+ Integer.valueOf(String.valueOf(A.charAt(lengthA)));
			buffer.append(result%10);
			temp = result/10;
			lengthA--;
		}
		
		while(lengthB>=0) {
			int result = temp+ Integer.valueOf(String.valueOf(B.charAt(lengthB)));
			buffer.append(result%10);
			temp = result/10;
			lengthB--;
		}
		if(temp!=0) {
			buffer.append(temp);
		}
		return buffer.reverse().toString();
	}
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		String A = in.next();
		String B = in.next();
		System.out.println(BigIntegerAdd(A, B));
	}
}

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值