第一次参加百度之星比赛的第一题

时间:2021-01-25 16:27:22
#include<stdio.h>

long long int N = 0;
long long int V = 0;
long long int K = 0;


long long int funct(long long int m,long long int num)
{
    if(m >= N)
        return 0;
    else if(m < V)
        return -1;

    long long int temp = (m - V) * K;
    num ++;

    if(temp == m)
        return -1;

    if(temp >=  N)
        return num;
    else
        return funct(temp,num);

}

int main()
{
    int  t = 0;
    long long int M = 0;
    int Num = 0;
    scanf("%d",&t);
    while(t --)
    {
        scanf("%lld %lld %lld %lld",&N,&M,&V,&K);
        if(N <= M)
        printf("0\n");
            else if(( N!=0 && K == 0)||((M < N)&& (K == 1)))
            printf("-1\n");
        else
        {
             printf("%lld\n",funct(M ,Num));
        }
    }

    return 0;
}

无语。对于第一道大题就是个坑。一直以为是自己的智商问题,结果被坑了大半天才发现要用64位啊啊啊啊!!!!!坑啊。我去。一个下午就这样被坑了。泪奔~泪奔~~把类型改成long long int就AC了。我想哭啊。就这样摆了一道。教训。深深的教训······留下代码作纪念吧。 第一次参加百度之星比赛的第一题第一次参加百度之星比赛的第一题第一次参加百度之星比赛的第一题