C/C++程序算法小练习--大整数加法
2016-12-05 21:45
597 查看
#include <iostream> #include <cstring> using namespace std; void reverse_str(char *a,int size){ for(int i=0;i<size/2;++i){ char t=a[i]; a[i]=a[size-i-1]; a[size-i-1]=t; } } void large_num_sum(){//两个大正整数相加 char a[1000]={0}; char b[1000]={0}; char c[1001]={0}; cin>>a; cin>>b; int a_len=strlen(a); int b_len=strlen(b); reverse_str(a,a_len); reverse_str(b,b_len); int max_len=a_len>b_len?a_len:b_len; int i; for(i=0;i<a_len&&i<b_len;++i){ c[i]+=a[i]+b[i]-'0'-'0'; if(c[i]>9){ c[i]-=10; c[i+1]+=1; } } if(i<a_len){ for(;i<a_len;++i){ c[i]+=a[i]-'0'; if(c[i]>9){ c[i]-=10; c[i+1]+=1; } } } if(i<b_len){ for(;i<b_len;++i){ c[i]+=b[i]-'0'; if(c[i]>9){ c[i]-=10; c[i+1]+=1; } } } int j; for(j=max_len;j>0;--j){//去除多余的前导0,但至少要留一位数,防止出现全0结果时没有输出 if(c[j]!=0){ break; } } for(int i=j;i>=0;--i){ cout<<(int)c[i]; } cout<<endl; } int main() { large_num_sum(); return 0; }
相关文章推荐
- C/C++程序算法小练习--大整数乘法
- C/C++程序算法小练习--大整数减法
- 今天的c++练习代码———>"欧几里德算法+函数的递归解决求2个整数的最大公约数"
- Java程序练习-长整数加法运算
- C++的高精度整数加法运算算法
- 1----编程实现100以内两个随机整数的加法运算练习(rand函数)
- 练习系统 实验三 大整数加法
- c++实现无限大整数的加法
- 编程实现任意长度整数的加法(整数可以长度超出C++中int范围)
- 任意长整数加法运算(C++)实验文档
- C++解决大整数加法
- Java程序练习-长整数加法运算
- 编程练习------C/C++分别实现字符串与整数的转换
- 【C/C++学习笔记】C 实现大整数的加法操作 —— 纪念入职公司时的上机题
- 【LeetCode231算法/编程练习C++】--判断是否是2的整数次幂 //按位与&的用处
- 编程练习------C/C++分别实现字符串与整数的转换
- C++ std::list实现大整数加法运算
- c++300位大整数加法
- OpenJudge 2981 大整数加法 C++
- 整数大数模拟 高精度加法 高精度减法 高精度乘法 高精度除法 c/c++ java