【蓝桥杯入门篇】Python组刷题日寄Part04

刷题日记?刷题日寄!
萌新备战蓝桥杯python组
发现有需要纠正的地方,烦请指正!
欢迎小伙伴们的三连+关注!

往期系列:
【蓝桥杯入门篇】Python组刷题日寄Part01

【蓝桥杯入门篇】Python组刷题日寄Part02

【蓝桥杯入门篇】Python组刷题日寄Part03

入门篇04

【蓝桥杯入门篇】Python组刷题日寄Part04

  • 第01题:鸡兔同笼
  • 第02题:求和训练
  • 第03题:求圆面积表面积体积
  • 第04题:输出M到N的数
  • 第05题:自定义函数之字符类型统计
  • 第06题:自定义函数之数字分离
  • 第07题:自定义函数之字符提取
  • 第08题:自由下落的距离计算
  • 第09题:有规律的数列求和
  • 第10题:水仙花数判断

第01题:鸡兔同笼

题目:
时间限制:
1s
内存限制:
128MB
题目描述:
已知鸡兔的脚共有80只,鸡和兔的总数量是一个20到40的整数s,编写一程序计算鸡兔各有多少只。
输入描述:
输入鸡兔总数整数s,20≤s≤40
输出描述:
输出两个整数,第一个数字为鸡的数量,第二个数字为兔的数量
样例输入:
30
样例输出:
20 10


答案:

分析:
设鸡的数量为x,兔的数量为y,列方程求解得:x=2s-40; y=40-s.

s = int(input())
x = 2*s-40
y = 40-s
print(x, y)

第02题:求和训练

题目:
时间限制:
1s
内存限制:
128MB
题目描述:
求以下三数的和,保留2位小数 1-a 之和 1-b的平方和 1-c的倒数和
输入描述:
a b c
输出描述:
1 + 2 + . . . + a + 1 2 + 2 2 + . . . + b 2 + 1 1 + 1 2 + . . . + 1 c 1+2+...+a + 1^2+2^2+...+b^2 + \frac{1}{1}+\frac{1}{2}+...+\frac{1}{c} 1+2+...+a+12+22+...+b2+11+21+...+c1
样例输入:
100 50 10
样例输出:
47977.93


答案:

分析:
循环语句。

a, b, c = map(int, input().split())
A, B, C = 0, 0, 0
for i in range(1, a+1):
    A += i
for j in range(1, b+1):
    B += j**2
for k in range(1, c+1):
    C += 1/k
print('%.2f' % (A+B+C))

第03题:求圆面积表面积体积

题目:
时间限制:
1s
内存限制:
128MB
题目描述:
接受用户输⼊的数值,输出以该值为半径的(1)圆面积,(2)球体表面积,(3)球体体积。pi 取值3.1415926536 ,结果保留10位小数,每一列占20个字符,左对齐。
输入描述:
一个满足题目要求的输入范例。
输出描述:
与上面的样例输入对应的输出。
样例输入:

样例输出:


答案:

分析:
注意格式化输出

r = float(input())
pi = 3.1415926536
s1 = pi*r**2
s2 = 4*pi*r**2
v = 4*pi*r**3/3
print('%-20.10f%-20.10f%-20.10f' % (s1, s2, v))

第04题:输出M到N的数

题目:
时间限制:
1s
内存限制:
128MB
题目描述:
依次给出两个正整数M和N,当M小于N时,在同一行从小到大依次输出大于M且不大于N的所有整数,当M不小于N时,输出“Error”(屏幕上输出Error时不带引号)。
输入描述:
两个整数
输出描述:
根据题目要求在同一行从小到大依次输出大于M且不大于N的所有整数或Error
样例输入:
4 8
样例输出:
5 6 7 8


答案:

分析:
利用range()函数循环输出

M, N = map(int, input().split())
if M<N:
    for i in range(M+1, N+1):
        print(i, end=' ')
else:
    print('Error')

第05题:自定义函数之字符类型统计

题目:
时间限制:
1s
内存限制:
128MB
题目描述:
编写一函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其它字符的个数,在主函数中输入字符串以及输出上述结果。 只要结果,别输出什么提示信息。
输入描述:
一行字符串
输出描述:
统计数据,4个数字,空格分开。
样例输入:
!@#$%^QWERT 1234567
样例输出:
5 7 4 6


答案:

分析:
本题之前出现过了,这里再做一遍巩固一下。可以利用isalpha()isdigit()函数判断是否为字母和数字。

def main():
    alpha_count = 0
    digit_count = 0
    blank_count = 0
    other_count = 0
    strinp = input(str())
    for i in strinp:
        if i.isalpha():
            alpha_count += 1
        elif i.isdigit():
            digit_count += 1
        elif i == ' ':
            blank_count += 1
        else:
            other_count += 1
    print(alpha_count, digit_count, blank_count, other_count)

if __name__=="__main__":
    main()

第06题:自定义函数之数字分离

题目:
时间限制:
1s
内存限制:
128MB
题目描述:
写一函数,输入一个四位数字,要求输出这四个数字字符,但每两个数字间空格。如输入1990,应输出"1 9 9 0"。
输入描述:
一个四位数
输出描述:
增加空格输出
样例输入:
1990
样例输出:
1 9 9 0


答案:

分析:
利用print()函数的end=参数逐个输出。

def main():
    a = str(input())
    for i in a:
        print(i, end=' ')

if __name__=='__main__':
    main()

第07题:自定义函数之字符提取

题目:
时间限制:
1s
内存限制:
128MB
题目描述:
写一函数,将一个字符串中的元音字母复制到另一个字符串,然后输出。
输入描述:
一行字符串
输出描述:
顺序输出其中的元音字母(aeiou)
样例输入:
abcde
样例输出:
ae


答案:

分析:
利用两个字符串逐个比较。

def main():
    s = str(input())
    l = 'aeiou'
    for i in s:
        for j in l:
            if i==j:
                print(i, end='')

if __name__=='__main__':
    main()

第08题:自由下落的距离计算

题目:
时间限制:
1s
内存限制:
128MB
题目描述:
一球从M米高度自由下落,每次落地后返回原高度的一半,再落下。 它在第N次落地时反弹多高?共经过多少米? 保留两位小数
输入描述:
M N
输出描述:
它在第N次落地时反弹多高?共经过多少米? 保留两位小数,空格隔开,放在一行
样例输入:
1000 5
样例输出:
31.25 2875.00


答案:

分析:
注意求解总长度时,最后一次还未反弹开。

M, N = map(int, input().split())
s = 0
for i in range(N):
    s += M
    M *= 0.5
    s += M
s -= M
print('%.2f %.2f' % (M, s))

第09题:有规律的数列求和

题目:
时间限制:
1s
内存限制:
128MB
题目描述:
有一分数序列: 2 1 , 3 2 , 5 3 , 8 5 , 13 8 , 21 13 . . . \frac{2}{1},\frac{3}{2},\frac{5}{3},\frac{8}{5},\frac{13}{8},\frac{21}{13}... 12,23,35,58,813,1321... 求出这个数列的前N项之和,保留两位小数。
输入描述:
N
输出描述:
数列前N项和
样例输入:
10
样例输出:
16.48


答案:

分析:
利用临时变量逐个求序列元素值并求和。

a = 2
b = 1
N = int(input())
s = 0
for i in range(N):
    s += a/b
    c = a+b
    b = a
    a = c

print('%.2f' % s)

第10题:水仙花数判断

题目:
时间限制:
1s
内存限制:
128MB
题目描述:
打印出所有"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该本身。 例如:153是一个水仙花数,因为 153 = 1 3 + 5 3 + 3 3 153=1^3+5^3+3^3 153=13+53+33
输入描述:

输出描述:
输出每一个水仙花数,一个数占一行
样例输入:

样例输出:


答案:

分析:
eval()函数的使用

for i in range(100, 1000):
    s = str(i)
    a = s[0]
    b = s[1]
    c = s[2]
    if eval(a)**3+eval(b)**3+eval(c)**3==i:
        print(i)

你可能感兴趣的:(#,蓝桥杯Python组刷题日寄,蓝桥杯,python,算法)