【蓝桥杯三月刷题 第X天】——
刷刷刷
biu~
(1)由题可以看出一张纸固定裁剪4次确定裁剪的框架,再裁剪几行几列裁剪为 裁剪次数 = 4 + 格子行 − 1 次 + ( 格子列 − 1 ) ∗ 格子行数 裁剪次数=4+格子行-1次+(格子列-1)*格子行数 裁剪次数=4+格子行−1次+(格子列−1)∗格子行数;
#include
using namespace std;
int main()
{
cout << 4 + 19 + 21 * 20;
return 0;
}
biu~
(1)n很大需要为long类型
做题经过:
一开始直接for循环 天数 m o d 7 天数mod7 天数mod7循环累加大于 n n n后输出的, n n n数据太大,然后直接将 ( n ) m o d 每周总题数 (n)mod每周总题数 (n)mod每周总题数 ,看剩余几天进行累加输出;结果也是因为数据太大找了半天才发现错误是数据类型给小了;
#include
using namespace std;
int main() {
long day, a, b, n, c, i;
cin >> a >> b >> n;
day = n / (a*5+b*2);
c = n % (a*5+b*2);
int re = 0;
for (i = 1; i <= 7; i++) {
if (i <= 5) {
re += a;
} else {
re += b;
}
if (re >= c) break;
}
if (!c) {
cout << day * 7;
} else {
cout << day * 7 + i;
}
return 0;
}
biu~
(1)模拟了一下后发现这题是有规律的,然后画了下图,发现前半部分是 ( n − i ) ∗ 2 (n - i) * 2 (n−i)∗2,后半部分是 ( i − 1 ) ∗ 2 (i - 1) * 2 (i−1)∗2;
更清晰简介的代码
#include
using namespace std;
int main()
{
int n;
cin >> n;
for (int i = 1; i <= n; i++) {
if (i <= n / 2) {
cout << (n - i) * 2 << endl;
} else {
cout << (i - 1) * 2 << endl;
}
}
return 0;
}