华为OJ——超长正整数相加
来源:互联网 发布:如何制作自己的软件 编辑:程序博客网 时间:2024/05/22 00:47
题目描述
请设计一个算法完成两个超长正整数的加法。
接口说明
/*
请设计一个算法完成两个超长正整数的加法。
输入参数:
String addend:加数
String augend:被加数
返回值:加法结果
*/
public String AddLongInteger(String addend, String augend)
{
/在这里实现功能/return null;
}输入描述:
输入两个字符串数字输出描述:
输出相加后的结果,string型示例1
输入
99999999999999999999999999999999999999999999999999
1
输出
100000000000000000000000000000000000000000000000000
实现代码:
package cn.c_shuang.demo75;import java.util.Scanner;/** * 超长正整数相加 * @author Cshuang * */public class Main { public static void main(String[] args) { Scanner in=new Scanner(System.in); while(in.hasNext()){ String a=in.next(); String b=in.next(); add(a,b); } in.close(); } private static void add(String a, String b) { char[]ch1=a.toCharArray(); char[]ch2=b.toCharArray(); int c=0;//进位 int len1=ch1.length; int len2=ch2.length; int temp = 0; StringBuilder sb=new StringBuilder(); while(len1>0&&len2>0){ temp = ch1[len1-1]-'0'+ch2[len2-1]-'0'+c; if(temp>=10){ c=temp/10; temp%=10; }else c=0; sb.append(temp); len1--; len2--; } int resLen=len1==0?len2:len1;//多于的部分 char[] resCh=len1==0?ch2:ch1; while(resLen>0){ temp=resCh[resLen-1]-'0'+c; if(temp>=10){ c=temp/10; temp%=10; }else c=0; sb.append(temp); resLen--; } if(c!=0) sb.append(c); System.out.println(sb.reverse().toString()); }}
阅读全文
0 0
- 华为OJ——超长正整数相加
- 华为OJ——超长正整数相加
- 华为OJ——超长正整数相加
- 【华为OJ】超长正整数相加
- 【华为oj】超长正整数相加
- 华为oj 超长正整数相加
- 华为oj 超长正整数相加
- 【华为OJ】超长正整数相加
- 大数相加 华为oj 超长正整数相加
- 华为OJ(超长正整数相加)
- 【华为OJ】【044-超长正整数相加】
- 华为OJ 初级:超长正整数相加
- 华为oj初级 超长正整数相加
- 超长正整数相加(OJ)
- 华为机试题:超长正整数相加
- 华为机试题-超长正整数相加
- 华为机试---超长正整数相加
- 【华为oj】超长正整数想加
- lambert光照
- 进程和线程区别详解
- vc++ 6.0相关
- 能不能做程序员啊
- 简单的MD5加密demo
- 华为OJ——超长正整数相加
- 【Python】抓取淘宝列表页信息
- Poj 1789 Truck History (最小生成树K
- Hibernate中Criteria的完整用法【整理】
- 自定义View,绘制一个圆形,并可以单击拖动
- hdu 6069 素数
- C
- 【ubuntu】The "android" command is deprecated.
- operating system not found