2023
问题描述
请求出在12345678 (含)至98765432 (含)中,有多少个数中完全不包含 2023.
完全不包含2023是指无论将这个数的哪些数位移除都不能得到2023。例如20322175,33220022都完全不包含2023,而20230415,20193213 则含有2023(后者取第1,2,6,8个数位)。
答案提交
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
def f(num:int):
ch = str(num)
index = 0
date = ['2','0','2','3']
for i in date:
if ch.find(i,index)==-1:
return 0
index = ch.find(i,index)
return 1
sumnum = 0
for i in range(12345678,98765433):
if f(i)==0:
sumnum+=1
print(sumnum)
print(85959030)
硬币交换
问题描述
小蓝手中有2023种不同面值的硬币,这些硬币全部是新版硬币,其中第i(1<=i<=2023)种硬币的面值为 i,数量也为 i 个。硬币兑换机可以进行硬币兑换,兑换规则为:交给硬币兑换机两个新版硬币 coin1 和 coin2,硬币兑换机会兑换成个面值为 coin1 + coin2的旧版硬币。
小蓝可以用自己已有的硬币进行任意次数兑换,假设最终小蓝手中有K种不同面值的硬币(只看面值,不看新旧)并第 i (1<=i<=K)种硬币的个数为 sumi ;小蓝想要使得 max sum1,sum2…,sumk的值达到最大,请你帮他计算这值最大是多少。
注意硬币兑换机只接受新版硬币进行兑换,并且兑换出的硬币全部是旧版硬币。
答案提交
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数在提交答案时只填写这个整数,填写多余的内容将无法得分。
import os
import sys
# 请在此输入您的代码
result=[0]*4046
for i in range(1,2024):
for j in range(i+1,2024):
result[i+j]+= i
print(max(result))
松散子序列
问题描述
给定一个仅含小写字母的字符串 s,假设s的一个子序列 t 的第 i 个字符对应了原字符串中的第 pi个字符。我们定义 s 的一个松散子序列为:对于i>1总是有 pi – pi+1> 2。设一个子序列的价值为其包含的每个字符的价值之和(a ~ z分别为 1 ~ 26)。
求s的松散子序列中的最大价值。
输入格式
输入一行包含一个字符串 s。
输出格式
输出一行包含一个整数表示答案。
import os
import sys
# 请在此输入您的代码
def fun(s):
LIST = [0 for i in range(len(s))]
LIST[0] = ord(s[0])-96
if len(s) == 1:
return LIST[0]
if len(s) == 2:
return max(ord(s[1]) - 96,LIST[0])
LIST[1] = max(ord(s[1]) - 96,LIST[0])
for i in range(2,len(s)):
LIST[i] = max(ord(s[i]) - 96 + LIST[i-2],LIST[i-1])
return LIST[-1]
s = input()
print(fun(s))