华为OJ——超长正整数相加
来源:互联网 发布:主播用的直播软件 编辑:程序博客网 时间:2024/05/16 17:16
超长正整数相加
题目描述
请设计一个算法完成两个超长正整数的加法。
接口说明
/*
请设计一个算法完成两个超长正整数的加法。
输入参数:
String addend:加数
String augend:被加数
返回值:加法结果
*/
public String AddLongInteger(String addend, String augend)
{
/*在这里实现功能*/
return null;
}
输入描述:
输入两个字符串数字
输出描述:
输出相加后的结果,string型
输入例子:
99999999999999999999999999999999999999999999999999
1
输出例子:
100000000000000000000000000000000000000000000000000
解答代码:
#include<iostream>#include<fstream>#include<string>#include<cstring>#include<algorithm>#include<ctime>using namespace std;int main(){ //freopen("1.txt","r",stdin); char ss[512]; string s; string s1,s2; int i,j,len1,len2,lmax; while(cin>>s1>>s2) { len1=s1.length(); len2=s2.length(); reverse(s1.begin(),s1.end()); reverse(s2.begin(),s2.end()); lmax=len1>len2?len1:len2; int temp=0; int sum[512]; int k=0,j; for(i=0; i<lmax; i++) { int a=0,b=0; if(i<len1) a=s1[i]-'0'; else a=0; if(i<len2) b=s2[i]-'0'; else b=0; int result=a+b+temp; temp=result>9?1:0; sum[k++]=result%10; } if(temp>0) { sum[k]=1; for(j=k; j>=0; j--) cout<<sum[j]; } else { for(j=k-1; j>=0; j--) cout<<sum[j]; } cout<<endl; } return 0;}
0 0
- 华为OJ——超长正整数相加
- 华为OJ——超长正整数相加
- 华为OJ——超长正整数相加
- 【华为OJ】超长正整数相加
- 【华为oj】超长正整数相加
- 华为oj 超长正整数相加
- 华为oj 超长正整数相加
- 【华为OJ】超长正整数相加
- 大数相加 华为oj 超长正整数相加
- 华为OJ(超长正整数相加)
- 【华为OJ】【044-超长正整数相加】
- 华为OJ 初级:超长正整数相加
- 华为oj初级 超长正整数相加
- 超长正整数相加(OJ)
- 华为机试题:超长正整数相加
- 华为机试题-超长正整数相加
- 华为机试---超长正整数相加
- 【华为oj】超长正整数想加
- 华为OJ——尼科彻斯定理
- php模块memcache和memcached区别分析
- 基于支付系统真实业务场景的分布式事务解决方案
- 给定一个整数sum,从有N个无序元素的数组中寻找元素a、b、c、d,使得 a+b+c+d =sum,最快的平均时间复杂度是____。
- 九度OJ 1051 数字阶梯求和
- 华为OJ——超长正整数相加
- Eclipse配置
- JavaWeb工程中web.xml基本配置
- 设二叉树结点的先根序列、中根序列和后根序列中,所有叶子结点的先后顺序____。
- swift-闭包产生的循环引用以及解决办法
- 华为OJ——计算字符串的相似度
- 【C++专题】static_cast, dynamic_cast, const_cast探讨
- PV操作简单理解
- php 正则表达式