蓝桥杯-13届-刷题统计

long long countDay(long long a,long long b,long long n) {
	long long ans = 0, week = 5 * a + 2 * b;

	ans += n / week * 7;// 需要几个整周
	n %= week;// 还剩下几个单天

	if (n == 0) return ans;

	for (int i = 0; i < 5; i++) {
		n -= a;
		ans++;
		if (n <= 0) return ans;
	}

	// 因为既不止5天,又不是7天,那就只有6天了//这句是错的
	// 因为存在模不尽,但是又正好需要7天的情况
	if (n - b <= 0) return ans + 1;
	return ans + 2;
}

int main()
{
	long long a, b, n;
	cin >> a >> b >> n;

	cout<<countDay(a, b, n);

	return 0;
}

这里我卡了一阵子90%,因为我以为:

  1. 不能整除7
  2. 超过5个单天

那一定是6

但是其实这是错误的,因为就算不能整除7,也存在需要7天才能完成的情况(6天不够,7天多了)

posted @ 2023-03-08 21:13  YaosGHC  阅读(35)  评论(0)    收藏  举报