文章目录
- 题目描述
- 输入描述
- 输出描述
- 实现代码
- 注意点
- 知识点
题目描述
小明决定从下周一开始努力刷题准备蓝桥杯竞赛。他计划周一至周五每天 做 a 道题目, 周六和周日每天做 b 道题目。请你帮小明计算, 按照计划他将在 第几天实现做题数大于等于 n 题?
输入描述
输入一行包含三个整数 a, b 和 n.
输出描述
输出一个整数代表天数。
实现代码
#include <iostream>
using namespace std;
int main()
{// 请在此输入您的代码long long a,b,n;cin>>a>>b>>n;long long weeks=0,days=0,left=0;weeks=n/(5*a+2*b);left=n%(5*a+2*b);if(left>5*a+b){days=weeks*7+7;}else if(left>5*a){days=weeks*7+6;}else if(left>4*a){days=weeks*7+5;}else if(left>3*a){days=weeks*7+4;}else if(left>2*a){days=weeks*7+3;}else if(left>a){days=weeks*7+2;}else if(left>0){days=weeks*7+1;}else{days=weeks*7;}cout<<days;return 0;
}
注意点
自己写的时候,没注意到当 left
等于 0 的时候的情况,导致出了错误。在题库练的时候还好,比赛的时候也看不见结果,得多细心点。
还需要注意题目里给的范围,一个是 10610^6106 ,另外一个是 101810^{18}1018 ,使用普通的 int
型会超范围,需要用 long long
型。
知识点
int
型范围:-32768~32767,大概是 3∗1043*10^43∗104 。long long
型范围:大概是 9∗10189*10^{18}9∗1018 。