hdu 5417 Victor and Machine

Problem Description
Victor has a machine. When the machine starts up, it will pop out a ball immediately. After that, the machine will pop out a ball every w seconds. However, the machine has some flaws, every time after x seconds of process the machine has to turn off for y seconds for maintenance work. At the second the machine will be shut down, it may pop out a ball. And while it's off, the machine will pop out no ball before the machine restart.
Now, at the 0 second, the machine opens for the first time. Victor wants to know when the n-th ball will be popped out. Could you tell him?
 
Input
The input contains several test cases, at most 100 cases.
Each line has four integers x, y, w and n. Their meanings are shown above。
1x,y,w,n100.
 
Output
For each test case, you should output a line contains a number indicates the time when the n-th ball will be popped out.
 
Sample Input
2 3 3 3
98 76 54 32
10 9 8 100
 
Sample Output
10
2664
939

  题意:一台机器每W分钟吐出一个球,但是它每隔x分要停y分钟。它每次开始时要吐出一个球。求吐出第n个球的时间。

 我们先算每x分钟能吐出多少个球,用n除每分钟吐出的球,就能知道机器要停机次,然后就简单了。

  

 1 #include<cstdio>
 2 #include<cstring>
 3 using namespace std;
 4 int main()
 5 {
 6     int n,w,x,y,ans,t;
 7     while (~scanf("%d%d%d%d",&x,&y,&w,&n))
 8     {
 9         t=x/w+1;
10         if (n%t==0)
11         {
12             ans=(n/t-1)*(x+y);
13             ans+=(t-1)*w;
14         }
15         else
16         {
17             ans=(n/t)*(x+y);
18             ans+=(n%t-1)*w;
19         }
20         printf("%d
",ans);
21     }
22 }
原文地址:https://www.cnblogs.com/pblr/p/4751248.html