Người Gửi: Darkness
- Problem:
Có một con ốc sên dưới mặt đất. Nó muốn leo lên đỉnh một cái cột bằng gỗ với chiều cao V mét, tính từ mặt đất. Trong một ngày, nó có thể leo lên A mét, tuy nhiên, trong mỗi đêm nó ngủ, nó lại bị tụt xuống B mét. Xác định số ngày cần thiết để con ốc sên leo tới đỉnh.
Input
Ba số nguyên cách nhau bởi dấu cách: A,B và V (1≤B<A≤V≤1 000 000 000).
Output
Một số nguyên duy nhất là số ngày cần thiết để con ốc sên leo tới đỉnh
Example:
Input
2 1 5
Output:
4
Input
5 1 6
Output:
2
Input
100 99 1000000000
Output:
999999901
- Solution:
Input
5 1 6
Output:
2
Input
100 99 1000000000
Output:
999999901
Bài này ta thấy A-B là chênh lệch mỗi ngày của con ốc sên di chuyển nên ta áp dụng như sau:
- Gọi: V-B là độ cao cần thiết để con ốc sên cần x ngày để lên tới đỉnh:
+ Nếu (V-B) chia hết cho (A-B): Thì con ốc sên đó cần x = (V-B)/(A-B) ngày để đạt được V-B độ cao. Và ngay sáng hôm sau con ốc sên lên A mét nữa sẽ lên tới đỉnh. (Luôn đúng vì A>B -> V-B+A>V).
+ Nếu không chia hết thì: x = [(V-B)/(A-B)]+1 (Cần thêm 1 ngày nữa)
- Code:
#include <iostream>
using namespace std;
int main ()
{
long A, B, V;
cin>>A>>B>>V;
if (A==V) cout<<"1";
else
{
if ((V-B)%(A-B)==0) cout<<(V-B)/(A-B);
else cout<<(V-B)/(A-B)+1;
}
return 0;
}
1 nhận xét:
nhận xéttại sao phải là V-B?
Reply