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

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

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

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


入门篇03

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

  • 第01题:自定义函数之字符串连接
  • 第02题:自定义函数之字符串反转
  • 第03题:二维数组的转置
  • 第04题:自定义函数处理素数
  • 第05题:自定义函数求一元二次方程
  • 第06题:数字逆序输出
  • 第07题:数组的插入处理
  • 第08题:矩阵对角线求和
  • 第09题:筛选N以内的素数
  • 第10题:猴子吃桃问题

第01题:自定义函数之字符串连接

题目:
时间限制:
1s
内存限制:
128MB
题目描述:
写一函数,将两个字符串连接
输入描述:
两行字符串
输出描述:
连接后的字符串
样例输入:
123
abc
样例输出:
123abc


答案:

分析:
字符串直接相加

def connect(a, b):
    print(a+b)

if __name__=='__main__':
    a = str(input())
    b = str(input())
    connect(a, b)

第02题:自定义函数之字符串反转

题目:
时间限制:
1s
内存限制:
128MB
题目描述:
写一函数,使输入的一个字符串按反序存放,在主函数中输入并输出反序后的字符串(不包含空格)
输入描述:
一行字符
输出描述:
逆序后的字符串
样例输入:
123456abcdef
样例输出:
fedcba654321


答案:

分析:
利用列表切片逆序输出

def rever(a):
    print(a[::-1])

if __name__=='__main__':
    a = str(input())
    rever(a)

mai****

第03题:二维数组的转置

题目:
时间限制:
1s
内存限制:
128MB
题目描述:
写一个函数,使给定的一个二维数组(3×3)转置,即行列互换。
输入描述:
一个3x3的矩阵
输出描述:

样例输入:
1 2 3
4 5 6
7 8 9
样例输出:
1 4 7
2 5 8
3 6 9


答案:

分析:
将矩阵放入二维列表中表示,然后按规则输出

def main():
    lst01 = []
    for i in range(3):
        lst02 = list(map(int, input().split()))
        lst01.append(lst02)
    for i in range(3):
        for j in range(3):
            print(lst01[j][i], end=' ')
        print()

if __name__=='__main__':
    main()

第04题:自定义函数处理素数

题目:
时间限制:
1s
内存限制:
128MB
题目描述:
写一个判断素数的函数,在主函数输入一个整数,输出是否是素数的消息。
输入描述:
一个数
输出描述:
如果是素数输出prime 如果不是输出not prime
样例输入:
97
样例输出:
prime


答案:

分析:
利用循环逐个判断

def main():
    a = int(input())
    if a < 2:
        print('not prime')
    else:
        for i in range(2, a):
            if a % i == 0:
                print('not prime')
                break
        else:
            print('prime')

if __name__=='__main__':
    main()

第05题:自定义函数求一元二次方程

题目:
时间限制:
1s
内存限制:
128MB
题目描述:
求方程 的根,用三个函数分别求当b^2-4ac大于0、等于0、和小于0时的根,并输出结果。从主函数输入a、b、c的值。
输入描述:
a b c
输出描述:
x1=? x2=?
样例输入:
4 1 1
样例输出:
x1=-0.125+0.484i x2=-0.125-0.484i


答案:

分析:
当判别函数小于零,将其取负,则变为正。进而分别计算实部和虚部。

from math import sqrt
def main():
    a, b, c = map(int, input().split())
    d = b**2-4*a*c
    if d>0:
        x1 = (-b + sqrt(d)) / (2 * a)
        x2 = (-b - sqrt(d)) / (2 * a)
        print('x1={:.3f} x2={:.3f}'.format(x1, x2))
    elif d==0:
        x1 = x2 = (-b + sqrt(d)) / (2 * a)
        print('x1={:.3f} x2={:.3f}'.format(x1, x2))
    else:
        x_r = -b/(2 * a)
        x1_i = sqrt(-d)/(2 * a)
        x2_i = sqrt(-d)/(2 * a)
        print('x1={:.3f}+{:.3f}i x2={:.3f}-{:.3f}i'.format(x_r, x1_i, x_r, x2_i))

if __name__=='__main__':
    main()

第06题:数字逆序输出

题目:
时间限制:
1s
内存限制:
128MB
题目描述:
输入10个数字,然后逆序输出。
输入描述:
输入10个数字,然后逆序输出。
输出描述:
逆序输出,空格分开
样例输入:
1 2 3 4 5 6 7 8 9 0
样例输出:
0 9 8 7 6 5 4 3 2 1


答案:

分析:
将数字输入列表再逆序逐个输出

a = list(map(int, input().split()))
for i in range(1, len(a)+1):
    print(a[-i], end=' ')

第07题:数组的插入处理

题目:
时间限制:
1s
内存限制:
128MB
题目描述:
已有一个已正序排好的9个元素的数组,今输入一个数要求按原来排序的规律将它插入数组中。
输入描述:
第一行,原始数列。 第二行,需要插入的数字。
输出描述:
排序后的数列
样例输入:
1 7 8 17 23 24 59 62 101
50
样例输出:
1
7
8
17
23
24
50
59
62
101


答案:

分析:

a = list(map(int, input().split()))
a.append(int(input()))
a.sort()
for i in a:
    print(i)

第08题:矩阵对角线求和

题目:
时间限制:
1s
内存限制:
128MB
题目描述:
求一个3×3矩阵对角线元素之和。
输入描述:
矩阵
输出描述:
主对角线 副对角线 元素和
样例输入:
1 2 3
1 1 1
3 2 1
样例输出:
3 7


答案:

分析:
利用列表。主对角线满足ij,副对角线满足i+j2

mat = [input().split(), input().split(), input().split()]
sum01 = sum02 = 0
for i in range(3):
    for j in range(3):
        if i==j:
            sum01 += int(mat[i][j])
        if i+j==2:
            sum02 += int(mat[i][j])

print(sum01, sum02)

第09题:筛选N以内的素数

题目:
时间限制:
1s
内存限制:
128MB
题目描述:
用简单素数筛选法求N以内的素数。
输入描述:
N
输出描述:
2~N的素数
样例输入:
100
样例输出:
2
3
5
7
11
13
17
19
23
29
31
37
41
43
47
53
59
61
67
71
73
79
83
89
97


答案:

分析:
循环,针对小于输入值的每个数,分别进行素数判断。
用列表保存素数,最后逐个输出。

a = int(input())
b = []
for i in range(2, a+1):
    for j in range(2, i):
        if i%j==0:
            break
    else:
        b.append(i)
for i in range(len(b)):
    print(b[i])

第10题:猴子吃桃问题

题目:
时间限制:
1s
内存限制:
128MB
题目描述:
猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。 第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。 到第N天早上想再吃时,见只剩下一个桃子了。求第一天共摘多少桃子。
输入描述:
N
输出描述:
桃子总数
样例输入:
10
样例输出:
1534


答案:

分析:
逆推。注意最后一天没有吃。

N = int(input())
n = 1
for i in range(N-1):
    n = 2*(n+1)

print(n)

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