链接:https://ac.nowcoder.com/acm/contest/332/B
来源:牛客网
小j开始打工,准备赚钱买煤气灶。
第一天,小j的工资为n元,之后每天他的工资都比前一天多d元。
已知煤气灶需要m元,求小j最少工作几天才能买到煤气灶。
第一天,小j的工资为n元,之后每天他的工资都比前一天多d元。
已知煤气灶需要m元,求小j最少工作几天才能买到煤气灶。
输入描述:
四个整数 n,m,d,x
分别表示小j第一天的工资,煤气灶的价格,工资每天的增长量,答案不超过x
输出描述:
一个数表示答案
示例1
输入
复制10 100 20 100
输出
复制4
说明
10+30+50+70>=100
备注:
0≤n,d≤109,n+d>00≤n,d≤109,n+d>0
1≤m≤10181≤m≤1018
1≤x≤109
这题我刚做的时候发现竟然很多人wa,,后来一看发现是他们
就把他当成简单的等差数列了。。不仔细看题的锅
其实是一个工资每天增加的。。
1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 const int maxn=1e5+10; 5 int main() 6 { 7 ll k=0;///每天的工资 8 ll ans,sum=0;///sum为得到的钱总数 9 ll n,m,d,x; 10 cin>>n>>m>>d>>x; 11 k=n; 12 for(int i=1;; i++) 13 { 14 sum+=k; 15 if(sum>=m)///先判断一波 16 { 17 ans=i; 18 break; 19 } 20 k+=d;///每天的工资增加 21 } 22 cout<<ans<<endl; 23 return 0; 24 }