高精度加减法(改良版)
来源:互联网 发布:淘宝号被别人实名认证 编辑:程序博客网 时间:2024/05/19 04:03
//说明:高精度1.1版本//添加了 交互 , 高精度减法的负号#include <iostream>#include <string>using namespace std;int a[100]={0},b[100]={0};int len1,len2,lenmax;string s1,s2;int main(){void input(int a[],int b[]);void add(int a[],int b[]);void minus(int a[],int b[]);char c;//c表示符号int i,p=1;while (1) //交互{input(a,b);cout<<"请输入符号:";cin>>c;if (len1>=len2) lenmax=len1;else lenmax=len2;switch (c){case'+':add(a,b);break;case'-':minus(a,b);}cout<<"请问要继续虐待你的计算机吗?(1/0) ";cin>>p;if (p==0) break;c='\0';for (i=0;i<len1;i++)a[i]=0;for (i=0;i<len1;i++)b[i]=0;}cout<<"程序结束,你的计算机终于可以休息啦~呼呼~o(∩_∩)o "<<endl;return 0;}//********input************void input(int a[],int b[]){cout<<"请输入两个正整数:"<<endl;cin>>s1>>s2;int i;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};for (int i=0;i<lenmax;i++){sum[i]=sum[i]+a[i]+b[i];if (sum[i]>=10){sum[i+1]+=sum[i]/10;sum[i]=sum[i]%10;}}if (sum[lenmax]!=0) cout<<sum[lenmax];for (int i=0;i<lenmax;i++)cout<<sum[lenmax-1-i];cout<<endl;}//********减法********void minus(int a[],int b[]){int sum[100]={0};int 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 (int i=0;i<lenmax;i++){if (a[i]>=b[i]) sum[i]=sum[i]+a[i]-b[i];else {a[i+1]-=1;sum[i]=a[i]+10-b[i];}}}else //a<b{for (int i=0;i<lenmax;i++){if (b[i]>=a[i]) sum[i]=sum[i]+b[i]-a[i];else {b[i+1]-=1;sum[i]=b[i]+10-a[i];}}}if (f==0) cout<<'-'; //如果a<b,即是负数,要加一个负号if (sum[lenmax-1]!=0) cout<<sum[lenmax-1];for (int i=0;i<lenmax-1;i++) cout<<sum[lenmax-2-i];cout<<endl;}
0 0
- 高精度加减法(改良版)
- 高精度加减法(选作)
- 高精度加减法
- 高精度加减法
- 高精度之高精度加减法
- 高精度加减法模板
- 整数高精度之加减法
- 高精度加乘法——四位改良版
- C语言学习笔记(五)----高精度的加减法
- 华为编程大赛--高精度加减法
- 高精度计算-大整数加减法
- 大数运算之高精度加减法
- 无线OSS-高精度整数加法(加数可以为负数,应实现高精度加减法)
- 华为编程大赛——高精度加减法
- 华为OJ高精度数的加减法
- rman备份脚本(改良版)
- 改良版的顺序表(动态)
- 2013-BIT程序设计 7. 四则运算之加减法 -- 高精度加减
- OpenCV中findContours详解
- 用Python functools.wraps实现装饰器
- uCOS-II内核之初始化及启动
- 高精度加减法
- 文章标题
- 高精度加减法(改良版)
- Android中Json数据的自动装配
- phpstudy环境在windows下配置虚拟主机 步骤
- 理解Python中的装饰器
- BZOJ 1305 二分+网络流
- Ldap服务器登录配置
- JAVA反射(二):通过反射获取类的结构
- Android自定义控件中view不能隐藏
- 中介者设计模式例子