目录
1.顺子日期
题目描述
小明特别喜欢顺子。顺子指的就是连续的三个数字:123、456 等。顺子日 期指的就是在日期的 yyyymmdd 表示法中,存在任意连续的三位数是一个顺 子的日期。例如 20220123 就是一个顺子日期,因为它出现了一个顺子:123; 而 20221023 则不是一个顺子日期,它一个顺子也没有。小明想知道在整个 2022 年份中,一共有多少个顺子日期。
答案:4或14
解法
当时就直接暴力找的,也没写对,答案为4的时候是排除了012的情况,答案为14的时候是包含了012的情况。
2.九进制转换十进制
题目描述
九进制正整数 (2022)9 转换成十进制等于多少?
答案:1478
解法
类似于二进制的解法,取2022的每一位数字,从右到左分别按9的0次方,9的一次方,9的二次方,9的三次方,所以结果就为2*1+2*9+0*9*9+2*9*9*9=1478。
3.刷题统计
题目描述
小明决定从下周一开始努力刷题准备蓝桥杯竞赛。他计划周一至周五每天 做 a 道题目,周六和周日每天做 b 道题目。请你帮小明计算,按照计划他将在 第几天实现做题数大于等于 n 题?
输入
输入一行包含三个整数 a, b 和 n.
对于 50% 的评测用例,1 ≤ a, b, n ≤ 1e6 .
对于 100% 的评测用例,1 ≤ a, b, n ≤ 1e18 .输出
输出一个整数代表天数。
样例输入
10 20 99样例输出
8
解法
直接暴力写的话,肯定会炸的,所以要取模运算,直接算出一周可以写的题数,然后求出不足一周的剩余题数,再循环判断需要几天,直接用之前的周数乘以7加上现在的天数就是答案了。
代码实现
#include<iostream>
using namespace std;
typedef long long int ll;//数据较大需long long
int main()
{
ll a,b,n;
cin>>a>>b>>n;
ll x=5*a+2*b;//一周的题数
ll z=n/x*7;
ll s=n%x;//不足一周的剩余题数
ll m=0;
for(int i=1;i<=7;i++)
{
if(s<=0)break;
if(i==6||i==7)//当轮到周六,周天时
s-=b;
else s-=a;
m=i;
}
cout<<z+m<<endl;
return 0;
}
4.修剪灌木
题目描述
爱丽丝要完成一项修剪灌木的工作。 有 N 棵灌木整齐的从左到右排成一排。爱丽丝在每天傍晚会修剪一棵灌 木,让灌木的高度变为 0 厘米。爱丽丝修剪灌木的顺序是从最左侧的灌木开始, 每天向右修剪一棵灌木。当修剪了最右侧的灌木后,她会调转方向,下一天开 始向左修剪灌木。直到修剪了最左的灌木后再次调转方向。然后如此循环往复。 灌木每天从早上到傍晚会长高 1 厘米,而其余时间不会长高。在第一天的