zoukankan      html  css  js  c++  java
  • 专业坑点合集

    分数

    #include<bits/stdc++.h>
    using namespace std;
    typedef long ll;
    
    char s[10000];
    ll arr,brr;
    ll fz,fm;
    
    void f(){
        int i=0,len=strlen(s),flag=0;
        if(s[0]=='-') ++i,flag=1;
        for(;i<len;++i){
            if(s[i]=='/') break;
        }
        ll a1=0,b1=0;;
        for(int j=(s[0]=='-'?1:0);j<i;++j){
            a1=a1*10+(ll)(s[j]-'0');
        }
        for(int j=i+1;j<len;++j){
            b1=b1*10+(ll)(s[j]-'0');
        }
        if(flag==1) arr=-a1;
        else arr=a1;
        brr=b1;
    }
    void f1(){
        int i=0,len=strlen(s),flag=0;;
        if(s[0]=='-') ++i,flag=1;;
        for(;i<len;++i){
            if(s[i]=='/') break;
        }
        ll a1=0,b1=0;;
        for(int j=(s[0]=='-'?1:0);j<i;++j){
            a1=a1*10+(ll)(s[j]-'0');
        }
        for(int j=i+1;j<len;++j){
            b1=b1*10+(ll)(s[j]-'0');
        }
        if(flag==1) fz=-a1;
        else fz=a1;
        fm=b1;
    }
    int main()
    {
        int n;scanf("%d",&n);
        scanf("%s",s);
        f1();
        for(int i=2;i<=n;++i){
            scanf("%s",s);
            f();
            ll tm=fm;
            ll cmp=__gcd(brr,fm);
            fm=brr*fm/cmp;
            ll t1=fm/tm,t2=fm/brr;
            fz=t1*fz+t2*arr;
            ll tmp=__gcd(fz,fm);
            if(tmp!=1){
                fz=fz/tmp;fm=fm/tmp;
            }
        }
        if(fz==0) cout<<0<<endl;
        else if(abs(fz)<fm){
                cout<<fz<<"/"<<fm<<endl;
        }
        else{
            ll tz=fz;
            if(fz<0) fz=-fz,cout<<"-";
            ll c=fz%fm;
            ll t=fz/fm;
            if(c==0) cout<<t<<endl;//注意判断如果分子为0则整个数为0
            else{
                cout<<t<<" ";
                if(tz<0) cout<<"-"<<c<<"/"<<fm<<endl;
                else cout<<c<<"/"<<fm<<endl;
    
            }
        }
    }
    
    • 注意分母定不可以为0

    • 求斜率时同时注意分母不得为0和斜率不存在的情况

    杂项

    • 单独for循环一定要加花括号

    • 乘两次必取模

    • string 不是以''为字符串的结束标志

    img

    • pow函数的用法,用的时候不可以开负数的立方
  • 相关阅读:
    开发管理工具(日常)
    python之uWSGI和WSGI
    php之Opcache
    nginx之健康检查
    重构糟糕的代码(一)
    PHP之50个开源项目
    Redis之各版本特性
    Redis之淘汰策略
    Redis之过期策略
    高并发之nginx限制
  • 原文地址:https://www.cnblogs.com/waryan/p/13298823.html
Copyright © 2011-2022 走看看