A题:九进制转十进制
【问题描述】
九进制正整数 (2022)9 转换成十进制等于多少/p>
【题目解答】
直接算就可以,答案为1478
B题:顺子日期
【问题描述】
小明特别喜欢顺子。顺子指的就是连续的三个数字:123、456 等。顺子日期指的就是在日期的 yyyymmdd 表示法中,存在任意连续的三位数是一个顺子的日期。例如 20220123 就是一个顺子日期,因为它出现了一个顺子:123; 而 20221023 则不是一个顺子日期,它一个顺子也没有。小明想知道在整个 2022年份中,一共有多少个顺子日期。
【题目解答】
目前说法不统一,题目说连续的三个数字,表述不明确,所以答案就有多种,可能的答案有4、5、14、47,具体答案以官方给出的为准。我在考试是写的是4。
C题:刷题统计
【问题描述】
小明决定从下周一开始努力刷题准备蓝桥杯竞赛。他计划周一至周五每天做 a 道题目,周六和周日每天做 b 道题目。请你帮小明计算,按照计划他将在第几天实现做题数大于等于 n 题/p>
输入一行包含三个整数 a, b 和 n.
输出一个整数代表天数。
对于 50% 的评测用例,1 ≤ a, b, n ≤ 106.
对于 100% 的评测用例,1 ≤ a, b, n ≤ 1018.
【输入样例】
10 20 99
【输出样例】
8
【题目解答】
本题很简单,先看测试用例,大小在1018则需要用到来保存数据,同时为保证程序时间不会超限,所以使总做题量除每周做题量,得数为用掉的周数,对余数进行模拟,最多进行七遍就可以得出做完余量的天数。
最终答案 = 周数×7+做完余量的天数
D题:修剪灌木
【问题描述】
爱丽丝要完成一项修剪灌木的工作。
棵灌木整齐的从左到右排成一排。爱丽丝在每天傍晚会修剪一棵灌木,让灌木的高度变为 0 厘米。爱丽丝修剪灌木的顺序是从最左侧的灌木开始,每天向右修剪一棵灌木。当修剪了最右侧的灌木后,她会调转方向,下一天开始向左修剪灌木。直到修剪了最左的灌木后再次调转方向。然后如此循环往复。
灌木每天从早上到傍晚会长高 1 厘米,而其余时间不会长高。在第一天的早晨,所有灌木的高度都是 0 厘米。爱丽丝想知道每棵灌木最高长到多高。
输入一个正整数 N ,含义如题面所述。
输出 N 行,每行一个整数,第行表示从左到右第 i 棵树最高能长到多高。
对于 30% 的数据,N ≤ 10.
对于 100% 的数据,1 < N ≤ 10000.
【输入样例】
3
【输出样例】
4
2
4
【题目解答】
这道题直接找规律模拟即可。先手算模拟找规律
- 三个灌木
4 2 4- 四个灌木
6 4 4 6- 五个灌木
8 6 4 6 8
算了三个数据以后找规律,很明显答案是:对 n 棵灌木中的第 i 个而言最高高度为| n-i | × 2,可以直接上手编代码了
E题:X 进制减法
【问题描述】
进制规定了数字在数位上逢几进一。
制是一种很神奇的进制,因为其每一数位的进制并不固定!例如说某种 X 进制数,最低数位为二进制,第二数位为十进制,第三数位为八进制,则 X 进制数 321 转换为十进制数为 65。
现在有两个 X 进制表示的整数 A 和 B,但是其具体每一数位的进制还不确定,只知道 A 和 B 是同一进制规则,且每一数位最高为 N 进制,最低为二进制。请你算出 A B 的结果最小可能是多少。
请注意,你需要保证 A 和 B 在 X 进制下都是合法的,即每一数位上的数字要小于其进制。
第一行一个正整数 N,含义如题面所述。
第二行一个正整数 Ma,表示 X 进制数 A 的位数。
第三行 Ma 个用空格分开的整数,表示 X 进制数 A 按从高位到低位顺序各个数位上的数字在十进制下的表示。
第四行一个正整数 Mb,表示 X 进制数 B 的位数。
第五行 Mb 个用空格分开的整数,表示 X 进制数 B 按从高位到低位顺序各个数位上的数字在十进制下的表示。
请注意,输入中的所有数字都是十进制的。
输出一行一个整数,表示 X 进制数 A B 的结果的最小可能值转换为十进制后再模 1000000007 的结果。
对于 30% 的数据,N ≤ 10; Ma, Mb ≤ 8.
对于 100% 的数据,2 ≤ N ≤ 1000; 1 ≤ Ma, Mb ≤ 100000; A ≥ B.
【输入样例】
11
3
10 4 0
3
1 2 0
【输出样例】
94
【样例说明】
当进制为:最低位 2 进制,第二数位 5 进制,第三数位 11 进制时,减法得到的差最小。此时 A 在十进制下是 108,B 在十进制下是 14,差值是 94
【题目解答】
很多人在这里就看不懂题了,其实这个题目是很简单的,我们来讲一下样例吧。给的第一个数为10 4 0, 每位对应的进制分别为11 5 2, 那么转化为十进制的过程是(10×5+4)×2+0=108;第二个数为1 2 0, 每位对应的进制分别为11 5 2, 那么转化为十进制的过程是(1×5+2)×2+0=14;不难看出其中规律:
(当前位置数×下一个位置的进制+下一个位置数)×下下个位置的进制+下下个位置数……
直到最后一个位置的数为止。
细心的小伙伴不难看出这种辗转乘的方法就是某进制转十进制的方法,所以最后一个数乘的应该是1(所以就直接忽略掉啦),而加完之后整个数也就变成了十进制。然后题中说的最小结果,就是最高位的进制不需要考虑,让每一位的进制尽可能的小即可。因为A、B的进制相同,所以第 i 位的进制就是max(A[i], B[i])+1,当然最小也要大于等于2哦。
还要考虑到A和B的位数不一致而需要补0,最重点的是对10e9+7取余!!!,博主就忘记了这一点,现在已经后悔死了o(╥﹏╥)o
上代码:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!