2023年全国青少年信息素养大赛北京赛区复赛解析(Python)

一、求余数

题目描述:

输入一个正整数,输出这个整数除以5的余数

输入描述:

输入一行一个正整数

输出描述:

输出这个整数除以5的余数

样例1:

输入:

12

输出:

2

x = int(input())
print(x%5)

二、最大身高差

题目描述:

上了初中之后,很多同学身高都开始迅速增长,不过有的同学生长发育的早一些,有的同学会晚一些。现在学校的生理健康老师想统计一下班级里面学生身高的最大跨度值(最大跨度值-身高最大值-身高最小值)。
任意输入一行整数,中间用空格间隔,输出身高最大跨度值。

输入描述:

输入一行整数,中间用空格间隔。

输出描述:

输出身高最大跨度值。

样例1:

输入:

168 152 140 179 155 162 172

输出:

39

height = [int(i) for i in input().split(' ')]
height.sort()
print(height[-1]-height[0])

三、重复字符

题目描述:

输入一个字符串s,将s中的每个字符都重复一次,然后输出这个新的字符串,例如,当s="abc"时,输出"aabbcc”。

输入描述:

输入一个字符串s。

输出描述:

输出一个新的字符串。

样例1:

输入:

abcd

输出:

aabbccdd

s = input()
arr = [i*2 for i in s]
print(''.join(arr))

四、出租车费用

题目描述:

某市出租车的计费标准是:起步价(3千米以内,包括3千米)14元,以后每超过1千米(不足1千米的按1千米计算)另加价3元。小可家到学校距离n千米,他打车需要多少钱?

输入描述:

输入一个数n表示小可家到学校距离。

输出描述:

输出打车的费用。

样例1:

输入:

8.8

输出:

32

import math
n=float(input())
price = 14
if n>3:
    price += ((math.ceil(n)-3) * 3)
print(price)

五、分钱方案

题目描述:

有n个人,他们需要分配m元钱(m>n),每个人至少分到1元钱,且每个人分到的钱数必须是整数。请问有多少种分配方案?

输入描述:

输入一行两个正熬数n,m,用空格间隔。

输出描述:

输出分配方案数。

样例1:

输入:

5 10

输出:

126

n,m=[int(i) for i in input().split(' ')]
num_up=1
for i in range(n-1):
    num_up *= m-1-i
num_down=1
for i in range(n-1,0,-1):
    num_down *= i
print(num_up//num_down)

六、错排问题

题目描述:

圣诞节快到了,公司为每个员工都准备了礼物,每个礼物都有一个精美的盒子。如果所有的礼物都不小心装错了盒子,求所有礼物都装错盒子共有多少种不同情况。

输入描述:

输入一个正整数n表示公司人数,保证n≤20。

输出描述:

输出一个整数,代表有多少种情况。

样例1:

输入:

2

输出:

1

n=int(input())
def cuopai(n):
    if n==1:
        return 0
    elif n==2:
        return 1
    else:
        return (n-1)*(cuopai(n-1)+cuopai(n-2))
print(cuopai(n))
  • 10
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值