1、编写一个能够输出 Hello,World! 的程序。
print("Hello,World!")
2、用 * 构造一个对角线长 5 个字符,倾斜放置的菱形。
print(" *\n ***\n*****\n ***\n *");
3、超级玛丽是一个非常经典的游戏。请你用字符画的形式输出超级玛丽中的一个场景:
********
************
####....#.
#..###.....##....
###.......###### ### ###
........... #...# #...#
##*####### #.#.# #.#.#
####*******###### #.#.# #.#.#
...#***.****.*###.... #...# #...#
....**********##..... ### ###
....**** *****....
#### ####
###### ######
##############################################################
#...#......#.##...#......#.##...#......#.##------------------#
###########################################------------------#
#..#....#....##..#....#....##..#....#....#####################
########################################## #----------#
#.....#......##.....#......##.....#......# #----------#
########################################## #----------#
#.#..#....#..##.#..#....#..##.#..#....#..# #----------#
########################################## ############
print(" ********\n ************\n ####....#.\n #..###.....##....\n ###.......###### ### ###\n ........... #...# #...#\n ##*####### #.#.# #.#.#\n ####*******###### #.#.# #.#.#\n ...#***.****.*###.... #...# #...#\n ....**********##..... ### ###\n ....**** *****....\n #### ####\n ###### ######\n##############################################################\n#...#......#.##...#......#.##...#......#.##------------------#\n###########################################------------------#\n#..#....#....##..#....#....##..#....#....#####################\n########################################## #----------#\n#.....#......##.....#......##.....#......# #----------#\n########################################## #----------#\n#.#..#....#..##.#..#....#..##.#..#....#..# #----------#\n########################################## ############\n");
4、小 B 喜欢吃苹果。她现在有 m(1≤m≤100)个苹果,吃完一个苹果需要花费 t(0≤t≤100)分钟,
吃完一个后立刻开始吃下一个。现在时间过去了 s(1≤s≤10000)分钟,请问她还有几个完整的苹果?
def main():
m = int(input().strip())
t = int(input().strip())
s = int(input().strip())
# 处理特殊情况
if t == 0:
print(0)
return
def main():
m = int(input().strip())
t = int(input().strip())
s = int(input().strip())
# 处理特殊情况
if t == 0:
# 吃苹果不需要时间,所有苹果都被吃完
print(0)
return
if s == 0:
# 没有时间过去,所有苹果都完整
print(m)
return
# 计算能吃完的苹果数量
apples_eaten = s // t
# 如果吃完的苹果数量大于等于总苹果数
if apples_eaten >= m:
print(0)
else:
# 计算剩余完整苹果数
remaining_apples = m - apples_eaten
print(remaining_apples)
if __name__ == "__main__":
main()
5、一些整数可能拥有以下的性质:
性质 1:是偶数;
性质 2:大于 4 且不大于 12。
小 A 喜欢这两个性质同时成立的整数;Uim 喜欢这至少符合其中一种性质的整数;小 B 喜欢刚好有符合其中一个性质的整数;
正妹喜欢不符合这两个性质的整数。现在给出一个整数 x,请问他们是否喜欢这个整数?
x = int(input().strip())
p1 = x % 2 == 0
p2 = 4 < x <= 12
print(int(p1 and p2), int(p1 or p2), int(p1 != p2), int(not p1 and not p2))
6、输入一个年份,判断这一年是否是闰年,如果是输出 1,否则输出 0。
1582 年以来,闰年的定义:
普通闰年:公历年份是 4 的倍数,且不是 100 的倍数的,为闰年(如 2004 年、2020 年等就是闰年)。
世纪闰年:公历年份是整百数的,必须是 400 的倍数才是闰年(如 1900 年不是闰年,2000 年是闰年)。
n = int(input().strip())
if (n % 4 == 0 and n % 100 != 0) or n % 400 == 0:
print(1)
else:
print(0)
7、给出 n 和 n 个整数 a
i
?
,求这 n 个整数中最小值是什么。
def main():
n = int(input())
a = list(map(int, input().split()))
a.sort()
print(a[0])
if __name__ == "__main__":
main()
8、给定 n 和 k,将从 1 到 n 之间的所有正整数可以分为两类:A 类数可以被 k 整除(也就是说是 k 的倍数),
而 B 类数不能。请输出这两类数的平均数,精确到小数点后 1 位,用空格隔开。
数据保证两类数的个数都不会是 0。
def main():
n, k = map(int, input().split())
s1 = 0
s2 = 0
c1 = 0
c2 = 0
for i in range(1, n + 1):
if i % k == 0: # 是否为 k 的倍数
s1 += 1
c1 += i
else:
s2 += 1
c2 += i
# 计算平均值并保留一位小数
avg1 = c1 / s1 if s1 > 0 else 0
avg2 = c2 / s2 if s2 > 0 else 0
print("{:.1f} {:.1f}".format(avg1, avg2))
if __name__ == "__main__":
main()
9、《庄子》中说到,“一尺之棰,日取其半,万世不竭”。第一天有一根长度为 a 的木棍,
从第二天开始,每天都要将这根木棍锯掉一半(每次除 2,向下取整)。第几天的时候木棍的长度会变为 1?
def main():
n = int(input())
count = 0
while n != 1:
n = n // 2 # 使用整数除法
count += 1
print(count + 1)
if __name__ == "__main__":
main()
10、给出 n,请输出一个直角边长度是 n 的数字直角三角形。所有数字都是 2 位组成的,如果没有 2 位则加上前导 0
n = int(input())
c = 1
for i in range(n, 0, -1):
for j in range(1, i + 1):
if c < 10:
print("0" + str(c), end="")
else:
print(c, end="")
c += 1
print()
11、人比人,气死人;鱼比鱼,难死鱼。小鱼最近参加了一个“比可爱”比赛,比的是每只鱼的可爱程度。参赛的鱼被从左到右排成一排,头都朝向左边,然后每只鱼会得到一个整数数值,表示这只鱼的可爱程度,很显然整数越大,表示这只鱼越可爱,而且任意两只鱼的可爱程度可能一样。由于所有的鱼头都朝向左边,所以每只鱼只能看见在它左边的鱼的可爱程度,
它们心里都在计算,在自己的眼力范围内有多少只鱼不如自己可爱呢。请你帮这些可爱但是鱼脑不够用的小鱼们计算一下。
def main():
n = int(input().strip())
c = list(map(int, input().split()))
b = [0] * n
for i in range(1, n):
for j in range(i):
if c[j] < c[i]:
b[i] += 1
print(' '.join(map(str, b)))
if __name__ == "__main__":
main()
12、给出一个正整数 n,然后对这个数字一直进行下面的操作:如果这个数字是奇数,那么将其乘 3 再加 1,否则除以 2。经过若干次循环后,最终都会回到 1。经过验证很大的数字(7×10
11
)都可以按照这样的方式比变成 1,所以被称为“冰雹猜想”。例如当 n 是 20,变化的过程是 20→10→5→16→8→4→2→1。
根据给定的数字,验证这个猜想,并从最后的 1 开始,倒序输出整个变化序列。
def main():
n = int(input())
m = n
a = []
x = 0
while n > 1:
if n % 2 == 0:
n = n // 2
a.append(n)
else:
n = n * 3 + 1
a.append(n)
x += 1
# 逆序输出数组元素
for i in range(x-1, -1, -1):
print(a[i], end=' ')
print(m)
if __name__ == "__main__":
main()
13、现有 N 名同学参加了期末考试,并且获得了每名同学的信息:语文、数学、英语成绩(均为不超过 150 的自然数)。如果某对学生 ?i,j? 的每一科成绩的分差都不大于 5,且总分分差不大于 10,
那么这对学生就是“旗鼓相当的对手”。现在想知道这些同学中,有几对“旗鼓相当的对手”?同样一个人可能会和其他好几名同学结对。
def main():
n = int(input().strip())
yw = [0] * (n + 1)
sx = [0] * (n + 1)
yy = [0] * (n + 1)
zf = [0] * (n + 1)
ans = 0
for i in range(1, n + 1):
data = list(map(int, input().split()))
yw[i] = data[0]
sx[i] = data[1]
yy[i] = data[2]
zf[i] = yw[i] + sx[i] + yy[i]
for i in range(1, n + 1):
for j in range(i + 1, n + 1):
if (abs(yw[i] - yw[j]) <= 5 and
abs(sx[i] - sx[j]) <= 5 and
abs(yy[i] - yy[j]) <= 5 and
abs(zf[i] - zf[j]) <= 10):
ans += 1
print(ans)
if __name__ == "__main__":
main()
14、大家都知道一些办公软件有自动将字母转换为大写的功能。输入一个长度不超过 100 且不包括空格的字符串。
要求将该字符串中的所有小写字母变成大写字母并输出。
import sys
while True:
ch = sys.stdin.read(1)
if not ch:
break
if 'a' <= ch <= 'z':
ch = chr(ord(ch) + ord('A') - ord('a'))
print(ch, end='')
15、某蒟蒻迷上了 “小书童”,有一天登陆时忘记密码了(他没绑定邮箱 or 手机),于是便把问题抛给了神犇你。
def main():
# 读取输入:一个整数n和一个字符串
data = input().split()
n = int(data[0])
# 如果输入在同一行,第二个元素是字符串;否则在下一行
s = data[1] if len(data) > 1 else input().strip()
result = []
for char in s:
# 对每个字符进行移位操作
if 'a' <= char <= 'z':
# 计算移位后的字符
new_char = chr((ord(char) - ord('a') + n) % 26 + ord('a'))
result.append(new_char)
else:
# 非小写字母保持不变
result.append(char)
# 输出结果
print(''.join(result))
if __name__ == '__main__':
main()
16、小果有一个只有两个键的键盘。一天,她打出了一个只有这两个字符的字符串。当这个字符串里含有 VK 这个字符串的时候,小果就特别喜欢这个字符串。
所以,她想改变至多一个字符(或者不做任何改变)来最大化这个字符串内 VK 出现的次数。给出原来的字符串,请计算她最多能使这个字符串内出现多少次 VK
(只有当 V 和 K 正好相邻时,我们认为出现了 VK。)
def main():
n = int(input().strip())
s = list(input().strip()) # 将字符串转换为列表以便修改
ans = 0
# 第一次遍历,查找"VK"并替换
for i in range(n - 1):
if s[i] == 'V' and s[i + 1] == 'K':
ans += 1
s[i] = 'A'
s[i + 1] = 'C'
# 第二次遍历,查找相邻相同字符
for i in range(n - 1):
if s[i] == s[i + 1]:
ans += 1
break
print(ans)
if __name__ == "__main__":
main()
17、输入 x,y,输出 [x,y] 区间中闰年个数,并在下一行输出所有闰年年份数字,使用空格隔开。
import sys
def main():
data = sys.stdin.read().split()
l = int(data[0])
r = int(data[1])
# Adjust l to the next multiple of 4 if it isn't already
while l % 4 != 0:
l += 1
cnt = 0
a = []
current = l
while current <= r:
if current % 100 == 0 and current % 400 != 0:
current += 4
continue
a.append(current)
cnt += 1
current += 4
print(cnt)
if cnt > 0:
print(' '.join(map(str, a)))
if __name__ == '__main__':
main()
18、求 n!,也就是 1×2×3?×n。
挑战:尝试不使用循环语句(for、while)完成这个任务。
def f(x):
if x == 0:
return 1
return f(x - 1) * x
n = int(input())
print(f(n))
19、输入一个偶数 N,验证 4~N 所有偶数是否符合哥德巴赫猜想:任一大于 2 的偶数都可写成两个质数之和。如果一个数不止一种分法,则输出第一个加数相比其他分法最小的方案。
例如 10,10=3+7=5+5,则 10=5+5 是错误答案。
import math
def is_prime(n):
"""判断一个数是否为质数"""
if n < 2:
return False
if n == 2:
return True
if n % 2 == 0:
return False
for i in range(3, int(math.sqrt(n)) + 1, 2):
if n % i == 0:
return False
return True
def goldbach_decomposition(n):
"""找到并输出哥德巴赫分解"""
for i in range(2, n):
if is_prime(i) and is_prime(n - i):
print(f"{n}={i}+{n-i}")
return
def main():
n = int(input("请输入一个偶数: "))
if n < 4:
print("输入必须大于等于4")
return
# 验证从4到n的所有偶数
for i in range(4, n + 1, 2):
goldbach_decomposition(i)
if __name__ == "__main__":
main()
20、一只小猴买了若干个桃子。第一天他刚好吃了这些桃子的一半,又贪嘴多吃了一个;接下来的每一天它都会吃剩余的桃子的一半外加一个。
第 n 天早上起来一看,只剩下 1 个桃子了。请问小猴买了几个桃子?
def main():
n = int(input("请输入天数 n: "))
ans = 1 # 最后一天剩下的桃子数
# 逆推计算第一天的桃子数
for i in range(1, n):
ans = (ans + 1) * 2
print(f"第一天摘了 {ans} 个桃子")
if __name__ == "__main__":
main()