C++--大整数加减法(验证版)
【摘要】 前言
一般在C++程序编写过程中,我们所能一算的数其实都是有限制的,对于多位数(比如20位数或更多),利用正常的方法就无法计算出正确结果,所以大数运算还是需要研究哈 O(∩_∩)O~
验证代码
#include <iostream>
#include <string>
using namespace std;
string plus(str...
前言
一般在C++程序编写过程中,我们所能一算的数其实都是有限制的,对于多位数(比如20位数或更多),利用正常的方法就无法计算出正确结果,所以大数运算还是需要研究哈
O(∩_∩)O~
验证代码
#include <iostream>
#include <string>
using namespace std;
string plus(string num1,string num2){
if(num1.size()<num2.size()){ string temp=num1;
num1=num2;
num2=temp;
}
int length1=num1.size(),length2=num2.size(),flag=0,a,b,sum;//flag是进位标记
while(length1>0){
a=num1[length1-1]-'0';
if(length2>0) b=num2[length2-1]-'0';
else b=0; sum=a+b+flag; if(sum>=10){ num1[length1-1]='0'+sum%10; flag=1;
}else{ num1[length1-1]='0'+sum; flag=0;
}
length1--;//向高位移动1位
length2--;//向高位移动1位
}
if(1==flag)
num1="1"+num1;
return num1;
}
string sub(string num1,string num2)
{
string num11;
int k=0;
if(num1.size()<num2.size()||num1<num2){ string temp=num1;
num1=num2;
num2=temp;
k=1;
}
int length1=num1.size(),length2=num2.size(),flag=0,a,b,s;
while(length1>0)
{ a=num1[length1-1]-'0';
if(length2>0) b=num2[length2-1]-'0';
else b=0;
s=a-b-flag;
if(s<0){ num1[length1-1]=10+s+'0'; flag=1;
}else{ num1[length1-1]='0'+s; flag=0; }
length1--;//向高位移动1位
length2--;//向高位移动1位
}
//return k=0? num1:'-'+num1;
if(k==0)
return num1;
else
return '-'+num1;
}
int main()
{
string num1;
string num2;
cout<<"加法"<<endl;
cout<<"请输入第一个数:"; cin>>num1;
cout<<"请输入第二个数:"; cin>>num2;
cout<<"和是:"<<plus(num1,num2)<<endl;
cout<<"减法"<<endl;
cout<<"请输入第一个数:"; cin>>num1;
cout<<"请输入第二个数:"; cin>>num2;
cout<<"差是:"<<sub(num1,num2)<<endl;
return 0;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
程序运行界面
文章来源: haihong.blog.csdn.net,作者:海轰Pro,版权归原作者所有,如需转载,请联系作者。
原文链接:haihong.blog.csdn.net/article/details/103625305
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)