• 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";
    }
  • 相关阅读:
    文件上传漏洞及解决办法
    block,inline和inline-block概念和区别
    java中toString() 、(String)、String.valueOf的区别
    实用的原生js图片轮播
    JSON如何处理-jsonpath使用举例
    gRPC初识
    用Rust写一个控制台的俄罗斯方块
    nginx 反向代理报400错误与Host关系
    JPA分页查询与条件分页查询
    Java reactor响应式编程
  • 原文地址:https://www.cnblogs.com/lcez56jsy/p/10464101.html
Copyright © 2020-2023  润新知