zoukankan      html  css  js  c++  java
  • P2412高精度减法

    传送门

    因为忘了带书回家,所以因为这道题我卡了半小时所以写篇博客“纪念”下

    高精度减法中,如果被减数比减数小,就要用减数减去被减数。接下来的判断就是本题的核心。直接用strcmp是不行的,例如100与99,用strcmp就是99大,所以我们还要再看长度。这里要特别注意一点,下面的代码是不行的。

    if(strcmp(s,k)>=0||lena>lenb)
    

    所以判断这里我们就要分类讨论两次(第一次比较长度,第二次用strcmp)

    代码如下(原谅蒟蒻的一匹的我代码长) 

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    using namespace std;
    char s[10001],k[10001];
    int a[10000001],b[100001],c[10000001];
    void j(int,int,int);
    void jf(int lena,int lenb,int lenc)
    {if(lena>lenb)
      {
        while(lenc<=lena||lenc<=lenb)
        { if(a[lenc]<b[lenc])
          {a[lenc+1]--;a[lenc]+=10;}
          c[lenc]=a[lenc]-b[lenc];
          lenc++;  
        }while(c[lenc]==0)lenc--;
       for(int i=lenc;i>=1;i--)
       cout<<c[i];
      }
      if(lena==lenb)
       {if(strcmp(s,k)>=0)
        {while(lenc<=lena||lenc<=lenb)
        { if(a[lenc]<b[lenc])
          {a[lenc+1]--;a[lenc]+=10;}
          c[lenc]=a[lenc]-b[lenc];
          lenc++;  
        }while(c[lenc]==0)lenc--;
       for(int i=lenc;i>=1;i--)
       cout<<c[i];
        }
        else j(lena,lenb,lenc);
       }
     if(lena<lenb)
     j( lena, lenb, lenc);
    }
    void j(int lena,int lenb,int lenc)
    {while(lenc<=lena||lenc<=lenb)
       { if(b[lenc]<a[lenc])
       {b[lenc+1]--;b[lenc]+=10;}
          c[lenc]=b[lenc]-a[lenc];
          lenc++;  
       }while(c[lenc]==0)lenc--;
       cout<<"-";
       for(int i=lenc;i>=1;i--)
       cout<<c[i];
     
    }
    int main()
    {int lena,lenb,lenc,t=0;
     scanf("%s",s);t++;
     scanf("%s",k);t++;
     lena=strlen(s);
     lenb=strlen(k);
     for(int i=0;i<=lena-1;i++)
     {a[lena-i]=s[i]-48;
     }
     for(int i=0;i<=lenb-1;i++)
     b[lenb-i]=k[i]-48;
     lenc=1;
    if(strcmp(s,k)!=0)jf(lena,lenb,lenc);
    else cout<<"0";
    }
  • 相关阅读:
    基于 OAI 部署私有的 4G EPS
    Ubuntu Snap 简述
    OAI SDR LTE 基站部署
    企业文化二三谈
    OpenStack 的 SR-IOV 虚拟机热迁移
    在 ThinkPad E470 上安装 Ubuntu 16.04 无线网卡驱动
    读写可编程 SIM/USIM 卡
    4G LTE/EPC UE 的附着与去附着
    4G EPS 的网络协议栈
    Java- 类型转换
  • 原文地址:https://www.cnblogs.com/lcez56jsy/p/10464101.html
Copyright © 2011-2022 走看看