【二分/数学】煤气灶

小j开始打工,准备赚钱买煤气灶。
第一天,小j的工资为n元,之后每天他的工资都比前一天多d元。
已知煤气灶需要m元,求小j最少工作几天才能买到煤气灶。

签到题:等差数列,二分查找

import java.io.BufferedInputStream;
import java.util.Scanner;
 
public class Main {
    public static void main(String[] args) {
        //Scanner in = new Scanner (new BufferedInputStream(System.in));
        Scanner in = new Scanner(new BufferedInputStream(System.in));
     
        Long n=in.nextLong();
        Long m=in.nextLong();
        Long d=in.nextLong();
        Long x=in.nextLong();
        Long l=(long) 1;
        Long r=x;
        while(l<r)
        {
            Long mid=(l+r)>>1;
            Long f=mid*n+mid*(mid-1)/2*d;
            if(f>=m)
            {
              r=mid;   
            }
            else
                l=mid+1;
        }
         System.out.println(l);
                 
         
    }
}

 

发表评论

电子邮件地址不会被公开。