zoukankan      html  css  js  c++  java
  • A-B 高精度

        类似加法,同样可以用竖式做减法。在做减法时需要注意的是:当被减数比减数大,输出为负数,同时要处理借位。

    代码:

    #include<iostream>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    int i,j,len,x[110000],y[110000],n1,n2,jw=0,o;
    char a[110000],b[110000],c[110000];
    int main()
    {
    	cin>>a>>b;
    	n1=strlen(a);
    	n2=strlen(b);
    	if(n1<n2||strcmp(a,b)<0&&n1==n2)//如果n1<n2那么减数比被减数小,结果为负数,如果位数一样,那么用strcmp一位一位比较(1)
    	{
    		strcpy(c,a);//用strcpy把a,b数组的值交换(2)
    		strcpy(a,b);
    		strcpy(b,c);  
    		cout<<"-";//输出负号 
    		x[i]=y[i]-x[i];
    		o=n1;//n1,n2交换 
    		n1=n2;
    		n2=o;
    	}
    	for(i=0;i<n1;i++)
    	{
    		x[i]=a[n1-1-i]-'0';//倒序存储 
    	}
    	for(i=0;i<n2;i++)
    	{
    		y[i]=b[n2-1-i]-'0';
    	}
    	len=max(n1,n2);
    	for(i=0;i<len;i++)
    	{
    		x[i]=x[i]-y[i]-jw;
    		if(x[i]<0&&y[i]>x[i])//如果小于0 
    		{
    			x[i]=x[i]+10;//当前加10 
    			x[i+1]=x[i+1]-1;//下一位-1 
    		}
    		x[i]=x[i]%10;
    	}
    	int f=i;
    	while(x[f]==0)//去0 
    	{
    		f--;
    	}
        for(i=f;i>=0;i--)cout<<x[i];
        if(f<0) cout<<0;
    }
    

      

      (1):strcmp

           (2):strcpy

  • 相关阅读:
    iOS UI调试神器,插件injection for Xcode使用方法
    iOS 开发笔记-Objective-C之KVC、KVO
    iOS 测试企业应用的分发
    iOS 阅读唐巧博客心得
    iOS 添加启动图片
    Xcode 常用命令
    iOS 开发笔记
    iOS 开发常用链接总结
    iOS
    iOS UI基础
  • 原文地址:https://www.cnblogs.com/dai-jia-ye/p/9259143.html
Copyright © 2011-2022 走看看