问题标题: 酷町堂:5538 龟兔赛跑

0
0
已解决
李素妍
李素妍
新手天翼
新手天翼

#include<iostream>
using namespace std;
int main(){
    int a,b,t;
    cin>>a>>b>>t;
    int a1,b1,ca=0,cb=0;
    a1=b1=0;
    while(b1!=t&&a1!=t){
        if(b1>=t||a1>=t){
            break;
        }
        cb++;
        b1+=b;
        if(a1<=b1){
            a1+=a;
            ca++;
        }
        else if(a1>b1){
            ca++;
        }
    }
    if(ca>cb){
        cout<<"wugui";
    }
    else if(cb>ca){
        cout<<"tuzi";
    }
    else cout<<"tongshi";
    return 0;
}

 


0
已采纳
康曦
康曦
中级光能
中级光能

我的跟你其实差不多

if(b1>=t||a1>=t){
            break;
        }

去掉

然后我直接第i分钟兔子走到哪乌龟走到哪,最后再判断

#include<iostream>
#include<cmath>
#include<cstdlib>
#include<algorithm>
#include<cstdio>
#include<cstring>
using namespace std;
int n,m,k,x=n,y=m;
int main(){ 
    ///freopen("3849.in","r",stdin);
    //freopen("3849.out","w",stdout);W
    cin>>n>>m>>k;
    while(y<k&&x<k){
        if(y<x){
            y+=m;
        }
        else {
            y+=m;
            x+=n;
        }
    //  cout<<x<<" "<<y<<endl;
    }
    if(x<y){
        cout<<"wugui";
    }
    else if(x==y)
    cout<<"tongshi";
    else if(x>y) cout<<"tuzi";
    //fclose(stdin);
    //fclose(stdout);
    return 0;
} //北N南S西W东E 
/*区间[1,n]的最大连续子数组和
最大连续子数组的位置
1.完全位于序列的左半边
2.完全位于序列的右半边
3.横跨序列的中点
最终最大值在三部分中取最大值
max(max(maxl,maxr),maxn)*/ 

 

0
0
张恩泽
张恩泽
高级天翼
高级天翼

简单的模拟,根据题目条件写就可以了

0
张恩泽
张恩泽
高级天翼
高级天翼

给你个大概的模拟过程:

ca += a;
cb += b;

第一分钟,都加

如果(ca大于cb){
    cb加等于b
}

注意,在模拟之前要判断它们有没有到终点

这个第一个判断的应该是是不是同时到终点

而不是兔子还是乌龟谁先到终点

我只能帮你到这了

我要回答