小s按按钮

链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网
一开始小 S 没有钱。当小 S 第奇数次( 1,3,5,⋯)次按按钮时,她可以得到 11 元;第偶数次( 2,4,6,⋯)次按按钮时,她可以得到 x元。
她想知道,最少需要按几次按钮,才可以赚到 y元钱或更多。

本题有多组独立的询问,请你对每组询问的 x,y 分别求出结果。

分析:

  1. 如果x为0时,则需要按y*n-1次----例x=0,y=2(1,0,1)需要按3次按钮
  2. 如果y=0时,则不需要操作
  3. 我们知道奇数与偶数总是成对出现的或者奇数比偶数多1,所以定义一个变量n=x+y,j=y/n
  • 当n*j>=y时,直接输出将j*2
  • 当n*j+1>=y时,输出j*2+1
    #include<bits/stdc++.h>
    using namespace std;
    int main()
    {
        int t;
        cin >> t;
        while(t--)
        {
            long long x,y,n=0,j=0;
            cin >> x >> y;
            if(y==0)
            {
                cout << 0 << endl;
                continue;
            }
            if(x==0)
            {
                cout << y*2-1 << endl;
                continue;
            }
            n=x+1;
            j=y/n;
            if(j*n>=y)
                cout << j*2 << endl;
            else
                if(j*n+1>=y)
                    cout << j*2+1 << endl;
            else
                    cout << j*2+2 << endl;
        }
        return 0;
    }

  • 当n*(j+1)>=y时,输出j*2+2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值