第4周 Python选择结构刷题

单击题目,直接跳转到页面刷题,一周后公布答案。加入QQ群901977517,随时答疑交流。

  1. B2050:三角形判断
  2. B2037:奇偶数判断
  3. B2039:整数大小比较
  4. P5711:闰年判断
  5. P5714:肥胖问题
  6. B2043:判断能否被 3,5,7 整除
  7. B2047:分段函数
  8. B2048:计算邮资

1. B2050:三角形判断

题目描述

给定三个正整数,分别表示三条线段的长度,判断这三条线段能否构成一个三角形。

输入格式

输入共一行,包含三个正整数,分别表示三条线段的长度,数与数之间以一个空格分开。(三条边的长度均不超过 10000 10000 10000

输出格式

如果能构成三角形,则输出 1 ,否则输出 0

样例 1

样例输入 1

1 1 1

样例输出 1

1

样例 2

样例输入 2

1 1 3

样例输出 2

0

提示

构成三角形的条件:任意两边长度之和大于第三条边的长度。

参考源码:

a, b, c = map(int, input().split())
if a + b > c and a + c > b and b + c > a:
    print(1)
else:
    print(0)

2. B2037:奇偶数判断

题目描述

给定一个整数,判断该数是奇数还是偶数。如果 n n n 是奇数,输出 odd;如果 n n n 是偶数,输出 even

输入格式

输入仅一行,一个整数 n n n

输出格式

输出仅一行,如果 n n n 是奇数,输出 odd;如果 n n n 是偶数,输出 even

样例 1

样例输入 1

5

样例输出 1

odd

样例 2

样例输入 2

10

样例输出 2

even

提示

− 100 ≤ n ≤ 100 -100\le n\le 100 100n100

参考源码:

n = int(input())
if n % 2 == 0:
    print("even")
else:
    print("odd")

3. B2039:整数大小比较

题目描述

输入两个整数,比较它们的大小。若 x > y x>y x>y ,输出 > ;若 x = y x=y x=y ,输出 = ;若 x < y x<y x<y,输出 <

输入格式

一行,包含两个整数 x x x y y y ,中间用单个空格隔开。 0 ≤ x < 2 32 , − 2 31 ≤ y < 2 31 0 \le x<2^{32}, -2^{31} \le y<2^{31} 0x<232,231y<231

输出格式

一个字符。若 x > y x>y x>y,输出 > ;若 x = y x=y x=y ,输出 = ;若 x < y x<y x<y ,输出 <

样例 1

样例输入 1

1000 100

样例输出 1

>

参考源码:

x, y = map(int, input().split())
if x > y:
    print('>')
elif x < y:
    print('<')
else:
    print('=')

4. P5711:闰年判断

题目描述

输入一个年份,判断这一年是否是闰年,如果是输出 1 1 1,否则输出 0 0 0

输入格式

输入一个正整数 n n n,表示年份。

输出格式

输出一行。如果输入的年份是闰年则输出 1 1 1,否则输出 0 0 0

样例 1

样例输入 1

1926

样例输出 1

0

样例 2

样例输入 2

1900

样例输出 2

0

样例 3

样例输入 3

2000

样例输出 3

1

样例 4

样例输入 4

1996

样例输出 4

1

提示

数据保证, 1582 ≤ n ≤ 2020 1582 \leq n \leq 2020 1582n2020 且年份为自然数。

参考源码:

n = int(input())
if (n % 4 == 0 and n % 100 != 0) or (n % 400 == 0):
    print(1)
else:
    print(0)

5. P5714:肥胖问题

题目描述

BMI 指数是国际上常用的衡量人体胖瘦程度的一个标准,其算法是 m h 2 \dfrac{m}{h^2} h2m,其中 m m m 是指体重(千克), h h h 是指身高(米)。不同体型范围与判定结果如下:

  • 小于 18.5 18.5 18.5:体重过轻,输出 Underweight
  • 大于等于 18.5 18.5 18.5 且小于 24 24 24:正常体重,输出 Normal
  • 大于等于 24 24 24:肥胖,不仅要输出 BMI 值(使用 cout 的默认精度),然后换行,还要输出 Overweight

现在给出体重和身高数据,需要根据 BMI 指数判断体型状态并输出对应的判断。

对于非 C++ 语言,在输出时,请四舍五入保留六位有效数字输出,如果小数部分存在后缀 0 0 0,不要输出后缀 0 0 0

请注意,保留六位有效数字不是保留六位小数。例如 123.4567 123.4567 123.4567 应该输出为 123.457 123.457 123.457 5432.10 5432.10 5432.10 应该输出为 5432.1 5432.1 5432.1

输入格式

共一行。
第一行,共 2 2 2 个浮点数, m , h m, h m,h,分别表示体重(单位为 kg),身高(单位为 m)。

输出格式

输出一行一个字符串,表示根据 BMI 的对应判断。特别地,对于 Overweight 情况的特别处理请参照题目所述。

样例 1

样例输入 1

70 1.72

样例输出 1

Normal

样例 2

样例输入 2

100 1.68

样例输出 2

35.4308
Overweight

提示

对于所有数据, 40 ≤ m ≤ 120 40\le m \le 120 40m120 1.4 ≤ h ≤ 2.0 1.4 \le h \le 2.0 1.4h2.0 m m m h h h 的小数点后不超过三位。

参考源码:

m, h = map(float, input().split())
bmi = m / h**2
if bmi < 18.5:
    print("Underweight")
elif bmi < 24:
    print("Normal")
else:
    print(f"{bmi:.6g}\nOverweight")

6. B2043:判断能否被 3,5,7 整除

题目描述

给定一个整数 x x x,判断它能否被 3 3 3 5 5 5 7 7 7 整除,并输出以下信息:
1、能同时被 3 , 5 , 7 3,5,7 3,5,7 整除(直接输出 3 5 7,每个数中间一个空格);
2、只能被其中两个数整除(按从小到大的顺序输出两个数,例如:3 5 或者 3 7 或者 5 7,中间用空格分隔);
3、只能被其中一个数整除(输出这个除数);
4、不能被任何数整除,输出小写字符 n

输入格式

输入一行,包括一个整数 x x x

输出格式

输出一行,按照描述要求给出整数被 3 3 3 5 5 5 7 7 7 整除的情况。

样例 1

样例输入 1

105

样例输出 1

3 5 7

提示

数据规模与约定

对于全部的测试点,保证 1 ≤ x ≤ 200 1 \leq x \leq 200 1x200

参考源码:

x = int(input())
if x % 3 == 0:
    print('3', end=' ')
if x % 5 == 0:
    print('5', end=' ')
if x % 7 == 0:
    print('7', end=' ')
if x % 3 and x % 5 and x % 7:
    print('n')

7. B2047:分段函数

题目描述

编写程序,计算下列分段函数 y = f ( x ) y=f(x) y=f(x) 的值。

0 ≤ x < 5 0 \le x<5 0x<5 时, y = − x + 2.5 y=-x+2.5 y=x+2.5

5 ≤ x < 10 5 \le x<10 5x<10 时, y = 2 − 1.5 ( x − 3 ) ( x − 3 ) y=2-1.5(x-3)(x-3) y=21.5(x3)(x3)

10 ≤ x < 20 10 \le x<20 10x<20 时, y = x / 2 − 1.5 y=x/2-1.5 y=x/21.5

输入格式

一个浮点数 x x x

输出格式

输出 x x x 对应的分段函数值: f ( x ) f(x) f(x)。结果保留到小数点后三位。

样例 1

样例输入 1

1.0

样例输出 1

1.500

提示

对于 100% 的数据 0 ≤ x < 20 0 \le x<20 0x<20

参考源码:

x = float(input())
if x >= 0:
    if x < 5:
        y = -x + 2.5
    elif x < 10:
        y = 2 - 1.5*(x-3)*(x-3)
    elif x < 20:
        y = x/2 - 1.5
print(f'{y:.3f}')

8. B2048:计算邮资

题目描述

请根据邮件的重量和用户选择是否加急计算邮费。计算规则:

  • 重量在 1000 1000 1000 以内(包括),基本费 8 8 8 元;
  • 超过 1000 1000 1000 克的部分,每 500 500 500 克加收超重费 4 4 4 元,不足 500 500 500 克部分按 500 500 500 克计算;
  • 如果用户选择加急,多收 5 5 5 元。

输入格式

一行,包含一个正整数 x x x 和一个字符 c(yn),之间用一个空格隔开,分别表示重量和是否加急。
如果字符是 y,说明选择加急;如果字符是 n,说明不加急。

输出格式

输出一行一个正整数,表示邮费。

样例 1

样例输入 1

1200 y

样例输出 1

17

提示

对于100%数据 1 ≤ x ≤ 1 0 6 1\leq x\leq 10^6 1x106

参考源码:

x, c = input().split()
x = int(x)
postage = 8
if x > 1000:
    x -= 1000
    postage += ((x-1)//500+1) * 4  # 上取整方法:(n-1)//k+1
if c == 'y':
    postage += 5
print(postage)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

趣学算法

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值