高精度加减法
来源:互联网 发布:淘宝号被别人实名认证 编辑:程序博客网 时间:2024/05/24 07:41
#include <iostream>#include <string>int a[100]={0},b[100]={0}; //初始化数组int len1=0,len2=0,lenmax=0;//输入数字的位数lenmax是指最长的那个数字using namespace std;string s1,s2;int main(){void input(int a[],int b[]);void add(int a[],int b[]);void minus(int a[],int b[]);input(a,b);if (len1>=len2) lenmax=len1;else lenmax=len2;//add(a,b);minus(a,b);return 0;}void input(int a[],int b[]){int i;cout<<"请输入两个整数(注意第一位是符号位:1代表正,0代表负)"<<endl;cin>>s1>>s2; len1=s1.length();len2=s2.length();//把字符变成数字,并且将其反转。反转后最后一位变成了符号位for (i=0;i<len1;i++)a[i]=s1[len1-1-i]-'0';for (i=0;i<len2;i++)b[i]=s2[len2-1-i]-'0';/*for (i=0;i<len1;i++)cout<<a[i]<<' ';cout<<endl;for (i=0;i<len2;i++)cout<<b[i]<<' ';cout<<endl;*/}//********************************************高精度加法*****************************************************void add(int a[],int b[]){int sum[100]={0};int i,lenend=0;//lenend为结构的位数for (i=0;i<lenmax;i++) //加法{lenend++;sum[i]=sum[i]+a[i]+b[i];sum[i+1]=sum[i]/10; //**这里注意了了!!!要先算了下一位再来求余数,因为都要用到sum[i]本身**sum[i]=sum[i]%10;}if (sum[lenend]!=0) cout<<sum[lenend];for (i=lenend-1;i>=0;i--)cout<<sum[i];cout<<endl;}//********************************************高精度减法*****************************************************void minus(int a[],int b[]){int sum[100]={0};int i,lenend=0,f;//f=1表示a>b,f=0表示a<bif (len1>len2) f=1;else if (len1<len2) f=0;else if(s1>s2) f=1;else if (s1<s2) f=0;if (f) //如果a>b{for (i=0;i<lenmax;i++){lenend++;if (a[i]>=b[i]) sum[i]=a[i]-b[i];//else //借位处理{a[i+1]-=1;sum[i]=a[i]+10-b[i];}}}else //a<b{for (i=0;i<lenmax;i++){lenend++;if (b[i]>=a[i]) sum[i]=b[i]-a[i];else {b[i+1]-=1; //借位处理sum[i]=b[i]+10-a[i];}}}if (sum[lenend-1]!=0) cout<<sum[lenend-1];for (i=lenend-2;i>=0;i--)cout<<sum[i];cout<<endl;}
0 0
- 高精度加减法
- 高精度加减法
- 高精度之高精度加减法
- 高精度加减法模板
- 整数高精度之加减法
- 高精度加减法(选作)
- 华为编程大赛--高精度加减法
- 高精度计算-大整数加减法
- 高精度加减法(改良版)
- 大数运算之高精度加减法
- 华为编程大赛——高精度加减法
- 华为OJ高精度数的加减法
- 2013-BIT程序设计 7. 四则运算之加减法 -- 高精度加减
- C语言学习笔记(五)----高精度的加减法
- 无线OSS-高精度整数加法(加数可以为负数,应实现高精度加减法)
- 高精度
- 高精度
- 高精度
- 欢迎使用CSDN-markdown编辑器
- Java 通过反射获取一个Field对象的泛型类型
- OpenCV中findContours详解
- 用Python functools.wraps实现装饰器
- uCOS-II内核之初始化及启动
- 高精度加减法
- 文章标题
- 高精度加减法(改良版)
- Android中Json数据的自动装配
- phpstudy环境在windows下配置虚拟主机 步骤
- 理解Python中的装饰器
- BZOJ 1305 二分+网络流
- Ldap服务器登录配置
- JAVA反射(二):通过反射获取类的结构