题面描述
为祝贺新一批的研究生入学,队长让大家为新人命题训练其程序设计能力。有人问队长能不能黑,队长说可以黑但是不能黑那啥。大家很失望 2333,于是 calfcamel 决定出一道 2333 的题目。给你一个小于 60 位的整数 p ,求大于 p 的最小的数 p1 ,使得 p1 中包含数 2333 。
输入数据
输入数据的第一行为一个正整数 T ,表示有 T 组数据。随后的 T 行中每行包括一个小于 60 位的整数 p ( T <= 50 , 1<= p <10^60 ,即 10 的 60 次方)。
输出数据
对每组输入数据单独输出一行结果,第 x 行结果形如 ”Case #x: a“ ,其中 x 为组号,从 1 开始, a 为对应的结果。
样例输入
2
100
1000000000000
样例输出
Case #1: 2333
Case #2: 1000000002333
心得:
1.注意审题题目是求大于 p 的包含 2333 的数
2.p 包含 2333 时每增加 10000 一定会出现 2333,p 不包含 2333 时每增加 9999 一定会出现 2333,可能 是 最后4位,可能是后五位去掉最后一位,可能是后六位去掉最后两位,可能是后七位去掉最后三位,可能是后八位去掉最后4位
3.也可以用 “while 1” 循环相加,但是其实此题循环次数是已知范围
# 方法 1
T = int(input())
for t1 in range(T) :
inputStr = input()
if inputStr != "":
p = int(inputStr)
if '2333' in inputStr:
maxN = 10000
else:
maxN = 9999
for n in range(maxN):
p += 1
if '2333' in str(p):
break
print("Case #%d: %d" % (t1 + 1 , p))
else:
break
# 方法 2
T = int(input())
for t1 in range(T) :
inputStr = input()
if inputStr != "":
p = int(inputStr)
if '2333' in inputStr:
p = p
while 1:
p += 1
if '2333' in str(p):
break
print("Case #%d: %d" % (t1 + 1 , p))
else:
break