链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网
一开始小 S 没有钱。当小 S 第奇数次( 1,3,5,⋯)次按按钮时,她可以得到 11 元;第偶数次( 2,4,6,⋯)次按按钮时,她可以得到 x元。
她想知道,最少需要按几次按钮,才可以赚到 y元钱或更多。
本题有多组独立的询问,请你对每组询问的 x,y 分别求出结果。
分析:
- 如果x为0时,则需要按y*n-1次----例x=0,y=2(1,0,1)需要按3次按钮
- 如果y=0时,则不需要操作
- 我们知道奇数与偶数总是成对出现的或者奇数比偶数多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