cpp题目连接: Accurate Movement
大致题意:
初始有a和b两个木块(a比b短),位于最左端, 现在移动a和b木块, 在a块不能超出b块的前提下, 问你最少挪动多少次可以把a和b都挪到最右端.
解题思路:
模拟, 以两木块的最右端做为记录点. 先挪动a, 每次a块只能挪到和b块相同的位置, b块每次最多挪动(b-a).
AC代码:
#include <bits/stdc++.h>
typedef long long ll;
using namespace std;
int main(void)
{
int a, b, n; cin >> a >> b >> n;
int da = a, db = b; int c = b - a;
int cou = 0;
while (db < n) {
if (da < n) da = db, cou++;
db += c; cou++;
}
cout << cou + (da < n) << endl;
return 0;
}
水题, 为了写报告= =