题目来自蓝桥杯官网:
(1)不同子串
一个字符串的非空子串是指字符串中长度至少为 1 的连续的一段字符组成 的串。例如,字符串aaab 有非空子串a, b, aa, ab, aaa, aab, aaab,一共 7 个。 注意在计算时,只算本质不同的串的个数。
请问,字符串0100110001010001 有多少个不同的非空子串?
这是一道结果填空的题,只需要算出一 个整数作为结果提交即可。
input_str
输出结果为:100
(2)年号字串
小明用字母 A 对应数字1,B 对应2,以此类推,用 Z 对应26。对于27以上的数字,小明用两位或更长位的字符串来对应,例如AA 对应 27,AB 对应28,AZ 对应52,LQ 对 329。
请问2019 对应的字符串是什么?
该题就是一个进制转换的问题,将十进制转换为26进制,因为是1~26,其中只有26个数,所以虽然是满27才进位,但应该是转26进制。
string
输出结果为:BYQ
(3) 数列求值
【问题描述】
给定数列 1, 1, 1, 3, 5, 9, 17, …,从第 4 项开始,每项都是前 3 项的和。求第 20190324 项的最后 4 位数字。
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个 4 位整数(提示:答案的千位不为 0),在提交答案时只填写这个整数,填写多余的内容将无法得分。
arr
输出为:4659
(4)数的分解
把 2019 分解成 3 个各不相同的正整数之和,并且要求每个正整数都不包含数字 2 和 4,一共有多少种不同的分解方法?
注意交换 3 个整数的顺序被视为同一种方法,例如 1000+1001+18 和 1001+1000+18 被视为同一种。
思路:该题用两个for循环进行求解,首先为了保证不重复,那我们只要保证三个数i,j,k始终是又小到大递增即可,即我们设置两个数的取值范围为:
第一个数是i取值范围为:[1,675],第二个数为j取值范围为:[i+1,1344]
(此处的上限是因为i是三个数中最小&