华为机试题-超长正整数相加
来源:互联网 发布:淘宝代销入门基础知识 编辑:程序博客网 时间:2024/05/21 17:25
#include <iostream>#include <string>using namespace std;// 输入参数:// char * pcAddend:加数// char * pcAugend:被加数// char * pcAddResult:加法结果void AddLongInteger(char * pcAddend, char * pcAugend, char * pcAddResult){ int length1 = strlen(pcAddend); int length2 = strlen(pcAugend); int carry_bit =0; //记录有无进位 int a1 = 0; int a2 = 0; int i = length1-1; int j = length2-1; string s=""; for(;i>=0||j>=0;i--,j--) { if(i>=0) { a1 = pcAddend[i]-'0'; } else { a1 = 0; } if(j>=0) { a2 = pcAugend[j]-'0'; } else { a2 = 0; } int sum = a1+a2+carry_bit; if(sum>=10) { carry_bit = 1; sum -= 10; } else { carry_bit = 0; } char temp = sum +'0'; // cout<<temp<<endl; s = temp+s; } if(carry_bit==1) s = '1'+s; // cout<<s<<endl; pcAddResult = new char[s.length()+1]; strcpy(pcAddResult,s.c_str()); //将字符串的值拷贝给字符数组 pcAddResult[s.length()] ='\0'; cout<<pcAddResult<<endl;}int main(){ string s1,s2; cin>>s1; cin>>s2; char *a,*b,*c; a = new char[s1.length()+1]; strcpy(a,s1.c_str()); a[s1.length()] ='\0'; b = new char[s2.length()+1]; strcpy(b,s2.c_str()); b[s2.length()] ='\0'; AddLongInteger(a,b,c); // cout<<c<<endl; // cout<<a<<endl;}题是做对了,但是感觉代码比较乱,请多提意见!
0 0
- 华为机试题:超长正整数相加
- 华为机试题-超长正整数相加
- 华为机试---超长正整数相加
- 【华为OJ】超长正整数相加
- 【华为oj】超长正整数相加
- 华为oj 超长正整数相加
- 华为oj 超长正整数相加
- 【华为OJ】超长正整数相加
- 大数相加 华为oj 超长正整数相加
- 2015华为机试练习-超长正整数相加
- 华为机试: 按字节截取字符串、超长正整数相加
- 华为OJ(超长正整数相加)
- 【华为OJ】【044-超长正整数相加】
- 华为OJ——超长正整数相加
- 华为OJ 初级:超长正整数相加
- 华为OJ——超长正整数相加
- 华为oj初级 超长正整数相加
- 华为OJ——超长正整数相加
- marquee标签 html
- Android创建数据库的时候出现Not Table错误解析
- java中的工厂模式是什么,请举例说明
- Radiobutton去掉默认选中圆圈的问题
- 作为产品助理的这一年
- 华为机试题-超长正整数相加
- Summary for week3
- 古典小说丛书系列软件
- hibernate 多对多(many-to-many)
- Contiki例(一)执行被阻塞的任务
- 转Intellij支持Eclipse的代码格式化文件
- Spring核心组件之Bean
- ubuntu14.04 下 ARPACK/PARPACK 安装具体步骤
- leetcode 077 —— Combinations