小强1004 2022-08-06 11:02 采纳率: 0%
浏览 1289
已结题

华为软考,要求JS语言编写,在线求解

华为机考真题,本人只会JS,故只能用JS语言编写,有会的小伙伴们用JS编写一下代码,并且能够顺利运行,感谢感谢!

img

img

img

  • 写回答

20条回答

  • 三只小菜猿 新星创作者: PHP技术领域 2022-08-09 14:22
    关注
    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    typedef unsigned long long ull; 
    const int N=1e3+5,M=2e4+5,inf=0x3f3f3f3f,mod=1e9+7;
    #define mst(a,b) memset(a,b,sizeof a)
    #define PII pair<int,int>
    #define fi first
    #define se second
    #define pb emplace_back
    #define SZ(a) (int)a.size()
    #define IOS ios::sync_with_stdio(false),cin.tie(0) 
    void Print(int *a,int n){
        for(int i=1;i<n;i++)
            printf("%d ",a[i]);
        printf("%d\n",a[n]); 
    }
    struct node{
        int a[3];
        bool operator != (node  b)const{
            for(int i=0;i<3;i++) if(a[i]!=b.a[i]) return true;
            return false;
        }
    }A,B;
    int tmp;
    node fun(node A,int k){
        int d1=A.a[1]-A.a[0],d2=A.a[2]-A.a[1];
        if(d1==d2) return A;
        else if(d1<d2){
            int t=min(k,(d2-1)/d1);
            k-=t;
            tmp+=t;
            A.a[0]+=t*d1,A.a[1]+=t*d1;
        }
        else {
            int t=min(k,(d1-1)/d2);
            k-=t;
            tmp+=t;
            A.a[1]-=t*d2,A.a[2]-=t*d2;        
        }
        if(k) return fun(A,k);
        else return A;
    }
    int main(){
        for(int i=0;i<3;i++) scanf("%d",&A.a[i]);
        for(int i=0;i<3;i++) scanf("%d",&B.a[i]);
        sort(A.a,A.a+3);
        sort(B.a,B.a+3);
        int dep1=0,dep2=0;
        node na=fun(A,inf);dep1=tmp,tmp=0;
        node nb=fun(B,inf);dep2=tmp,tmp=0;
        if(na!=nb) return puts("NO"),0;
        if(dep1>dep2){
            swap(dep1,dep2);
            swap(A,B);
        }
        int ans=dep2-dep1;
        B=fun(B,ans);
        int l=0,r=dep1;
        while(l<r){
            int m=l+r>>1;
            if(fun(A,m)!=fun(B,m)) l=m+1;
            else r=m;
        }
        ans+=(l<<1);
        puts("YES");
        printf("%d\n",ans);
        return 0;
    }
    
    
    
    
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 8月13日
  • 提问应符合社区要求 8月8日
  • 创建了问题 8月6日