第一题:哪天返回
题目描述
小明被不明势力劫持。后莫名其妙被扔到x星站再无问津。小明得知每天都有飞船飞往地球,但需要108元的船票,而他却身无分文。
他决定在x星战打工。好心的老板答应包食宿,第1天给他1元钱。 并且,以后的每一天都比前一天多2元钱,直到他有足够的钱买票。
请计算一下,小明在第几天就能凑够108元,返回地球。
要求提交的是一个整数,表示第几天。请不要提交任何多余的内容。
money = 1
sum = 0
day = 1
while True:
if sum >= 108:
print(day)
break
money += 2
sum += money
day += 1
答案:11
第二题:猴子分香蕉
题目描述
5只猴子是好朋友,在海边的椰子树上睡着了。这期间,有商船把一大堆香蕉忘记在沙滩上离去。
第1只猴子醒来,把香蕉均分成5堆,还剩下1个,就吃掉并把自己的一份藏起来继续睡觉。
第2只猴子醒来,重新把香蕉均分成5堆,还剩下2个,就吃掉并把自己的一份藏起来继续睡觉。
第3只猴子醒来,重新把香蕉均分成5堆,还剩下3个,就吃掉并把自己的一份藏起来继续睡觉。
第4只猴子醒来,重新把香蕉均分成5堆,还剩下4个,就吃掉并把自己的一份藏起来继续睡觉。
第5只猴子醒来,重新把香蕉均分成5堆,哈哈,正好不剩!请计算一开始最少有多少个香蕉。
需要提交的是一个整数,不要填写任何多余的内容。
for i in range(10000):
i1 = i
if i % 5 == 1:
a = i // 5
i = i - 1 - a
if i % 5 == 2:
a = i // 5
i = i - 2 - a
if i % 5 == 3:
a = i // 5
i = i - 3 - a
if i % 5 == 4:
a = i // 5
i = i - 4 - a
if i % 5 == 0:
print(i1)
答案: 3141 一开始会有一个16,经验证16不满足条件所以排除
第三题:字母阵列
题目描述
仔细寻找,会发现:在下面的8x8的方阵中,隐藏着字母序列:“LANQIAO”。
SLANQIAO
ZOEXCCGB
MOAYWKHI
BCCIPLJQ
SLANQIAO
RSFWFNYA
XIFZVWAL
COAIQNAL我们约定: 序列可以水平,垂直,或者是斜向; 并且走向不限(实际上就是有一共8种方向)。
上图中一共有4个满足要求的串。下面有一个更大的(100x100)的字母方阵。 你能算出其中隐藏了多少个“LANQIAO”吗?
第四题:第几个幸运数
题目描述
到x星球旅行的游客都被发给一个整数,作为游客编号。 x星的国王有个怪癖,他只喜欢数字3,5和7。
国王规定,游客的编号如果只含有因子:3,5,7,就可以获得一份奖品。我们来看前10个幸运数字是: 3 5 7 9 15 21 25 27 35 45
因而第11个幸运数字是:49小明领到了一个幸运数字 59084709587505,他去领奖的时候,人家要求他准确地说出这是第几个幸运数字,否则领不到奖品。
请你帮小明计算一下,59084709587505是第几个幸运数字。
需要提交的是一个整数,请不要填写任何多余内容。
n = 59084709587505
sum = 0
for i in range(100):
for j in range(100):
for k in range(100):
if (3**i)*(5**j)*(7**k) < n:
sum += 1
else:
break
print(sum)
答案: 1905
第五题:书号验证
第六题:稍小分数
第七题:次数差
题目描述
x星球有26只球队,分别用a~z的26个字母代表。他们总是不停地比赛。
在某一赛段,哪个球队获胜了,就记录下代表它的字母,这样就形成一个长长的串。
国王总是询问:获胜次数最多的和获胜次数最少的有多大差距?(当然,他不关心那些一次也没获胜的,认为他们在怠工罢了)输入,一个串,表示球队获胜情况(保证串的长度<1000)
要求输出一个数字,表示出现次数最多的字母比出现次数最少的字母多了多少次。
比如: 输入: abaabcaa
则程序应该输出: 4
解释:a出现5次,最多;c出现1次,最少。5-1=4
再比如: 输入: bbccccddaaaacccc
程序应该输出: 6
资源约定: 峰值内存消耗(含虚拟机) < 256M CPU消耗 < 1000ms
strs = input()
lis = set(strs)
num = []
for li in lis:
num.append(strs.count(li))
num.sort()
print(num[-1]-num[0])
第八题:等腰三角形题目描述
题目描述
本题目要求你在控制台输出一个由数字组成的等腰三角形。 具体的步骤是:
先用1,2,3,…的自然数拼一个足够长的串 用这个串填充三角形的三条边。从上方顶点开始,逆时针填充。 比如,当三角形高度是8时:
n = int(input())
len = 0
a = [0] * 1000005
for i in range(10005):
tmp = i
temp = [0] * 1005
l = 0
while tmp:
temp[l] = tmp % 10
tmp = tmp // 10
l += 1
for j in range(l-1, -1, -1):
a[len] = temp[j]
len += 1
if len >= 4*n-4:
break
for i in range(n-1):
print('.', end='')
print(a[0])
for i in range(1, n-1):
for j in range(n-i-2, -1, -1):
print('.', end='')
print(a[i], end='')
for k in range(2*i-1):
print('.', end='')
print(a[4*n-4-i])
for i in range(n-1, 3*n-2):
print(a[i], end='')
第九题:小朋友崇拜圈
题目描述
班里N个小朋友,每个人都有自己最崇拜的一个小朋友(也可以是自己)。 在一个游戏中,需要小朋友坐一个圈,
每个小朋友都有自己最崇拜的小朋友在他的右手边。 求满足条件的圈最大多少人?小朋友编号为1,2,3,…N 输入第一行,一个整数N(3<N<100000) 接下来一行N个整数,由空格分开。
要求输出一个整数,表示满足条件的最大圈的人数。
例如: 输入:
9
3 4 2 5 3 8 4 6 9则程序应该输出: 4
解释: 如图p1.png所示,崇拜关系用箭头表示,红色表示不在圈中。 显然,最大圈是[2 4 5 3] 构成的圈
再例如:
输入: 30
22 28 16 6 27 21 30 1 29 10 9 14 24 11 7 2 8 5 26 4 12 3 25 18 20 19 23 17 13 15程序应该输出: 16
资源约定: 峰值内存消耗(含虚拟机) < 256M
CPU消耗 < 1000ms
n = int(input())
nums = list(map(int, input().split(' ')))
li = []
for i in range(n):
a = i
sum = 0
for j in range(n+1):
sum += 1
i = nums[i] - 1
if i == a:
break
li.append(sum)
res = []
for i in li:
if i < n:
res.append(i)
print(max(res))
第十题:耐摔指数
题目描述
x星球的居民脾气不太好,但好在他们生气的时候唯一的异常举动是:摔手机。
各大厂商也就纷纷推出各种耐摔型手机。x星球的质监局规定了手机必须经过耐摔测试,并且评定出一个耐摔指数来,之后才允许上市流通。
x星球有很多高耸入云的高塔,刚好可以用来做耐摔测试。塔的每一层高度都是一样的,与地球上稍有不同的是,他们的第一层不是地面,而是相当于我们的2楼。
如果手机从第7层扔下去没摔坏,但第8层摔坏了,则手机耐摔指数=7。
特别地,如果手机从第1层扔下去就坏了,则耐摔指数=0。
如果到了塔的最高层第n层扔没摔坏,则耐摔指数=n
为了减少测试次数,从每个厂家抽样3部手机参加测试。
如果已知了测试塔的高度,并且采用最佳策略,在最坏的运气下最多需要测试多少次才能确定手机的耐摔指数呢?
输入数据,一个整数n(3<n<10000),表示测试塔的高度。
输出一个整数,表示最多测试多少次。
例如:
输入:
3
程序应该输出:
2
解释:
手机a从2楼扔下去,坏了,就把b手机从1楼扔;否则a手机继续3层扔下
再例如:
输入:
7
程序应该输出:
3
解释:
a手机从4层扔,坏了,则下面有3层,b,c 两部手机2次足可以测出指数;
若是没坏,手机充足,上面5,6,7 三层2次也容易测出。
资源约定:
峰值内存消耗(含虚拟机) < 256M
CPU消耗 < 1000ms


1046

被折叠的 条评论
为什么被折叠?



