青少年蓝桥杯python组(STEMA中级组)

第一套编程题

第一题

【编程实现】

输入一个字符串(N),输出该字符串的长度。

输入描述:输入一个字符串 N

输出描述:输出该字符串的长度

【样例输入】

abcd

【样例输出】

4

N = input()
print(len(N))

第二题

【提示信息】

小蓝家的灯是拉线型开关的,拉一次灯开,再拉一次灯关,未拉之前灯是熄灭状态。

【编程实现】

输入一个正整数 M(1

输入描述:输入一个正整数 M 作为拉灯的次数(1

输出描述:如果灯是点亮状态输出整数“1”,如果灯是熄灭状态输出整数“0”。

【样例输入】

5

【样例输出】

1

#方法一
M=int(input())
isLiang=False
for i in range(M):
    isLiang=not isLiang
print(int(isLiang))
#方法二
M=int(input())
print(M%2)

第三题

【编程实现】

小蓝的学校组织了一场演讲比赛,有 8 位评委对参赛选手进行打分。打分规则是去掉 8 位评委中最高分和最低分后,计算出剩余 6 位评委分数的平均值(保留两位小数)作为最后得分。

小蓝同学也积极参加了本次演讲比赛,请你帮小蓝计算一下她的最后得分。输入 8 个整 数(0<=输入整数<=100)分别以逗号隔开作为 8 位评委对小蓝同学的打分,请按照打 分规则计算出小蓝的最后得分并输出。

输入描述:输入 8 个整数(0<=输入整数<=100),分别以逗号隔开

输出描述:输出小 蓝的最后得分(注意,保留两位小数)

【样例输入】

50,90,55,78,52,68,66,93

【样例输出】

68.17

l=list(map(int,input().split(',')))
l_max = max(l)
l_min = min(l)
l.remove(l_max)
l.remove(l_min)
junzhi=sum(l)/len(l)
print(round(junzhi,2))

第四题

【编程实现】

用户输入一个正整数 N(3<=N<=9)。从 0 到 N 之间的所有正整数(包含 0 和 N)中 选择三个,组成一个三位数(0 不能作为百位数),且这个三位数为奇数,请计算出共有 多少种满足条件的三位数组合。(注意:组成的每个三位数各个位上的数字不能重复)

输入描述:输入一个正整数 N(3<=N<=9)

输出描述:输出满足条件的三位数组合的个数

【样例输入】

3

【样例输出】

8

【上述输入输出样例的进一步解释】 用户输入的正整数,即样例输入为 3,也就是将 0、1、2、3 四个数字进行组合。符合 要求的三位数为:103、123、203、213、201、231、301、321 共 8 个,所 以样例输出为 8。

N=int(input())
count=0
for i in range(1,N+1):
    for j in range(0,N+1):
        if i==j:
            continue
        for k in range(0,N+1):
            if i!=j and j!=k and i!=k and (i*100+j*10+k)%2!=0:
                count+=1
print(count)

第五题

【编程实现】

回文数是指一个像 14641 这样“对称”的数,即:将这个数的各位数字按相反的顺序重 新排列后,所得到的数和原来的数一样。请编程求不同位数数字的回文数的个数。 用户输入一个正整数 M(2

输入描述:输入一个正整数 M

输出描述:第一行输出回文数的个数;第二行输出 M 位的回文数中包含数字 99 的有几 个。

【样例输入】

3

【样例输出】

90

1

M=int(input())
count=0
count2=0
for i in range(10**(M-1),10**M):
    r=str(i)[::-1]
    if str(i)==r:
        count+=1
        if '99' in str(i):
            count2+=1
print(count)
print(count2)

第二套编程题

第一题

【编程实现】 输入一个正整数,输出这个正整数是一个几位数。

输入描述:输入一个正整数

输出描述:输出这个正整数是一个几位数

【样例输入】

12

【样例输出】

2

N=int(input())
count=0
while N!=0:
    N//=10
    count+=1
print(count)

第二题

【编程实现】 给定一个正整数,然后分行输出这个正整数奇数位上的数(个位数为第一位)。

输入描述:输入一个正整数

输出描述:分行输出这个正整数奇数位上的数

【样例输入】

123

【样例输出】

3

1

N=int(input())
while N!=0:
    print(N%10)
    N//=100

第三题

【提示信息】

平方是一种运算,比如:a 的平方表示 a×a。例如:2 的平方为 4 (也就是 22 的积) 例如:4 的平方为 16 (也就是 44 的积)

【编程实现】

输入一个正整数 N(N<30),输出 1 到 N(包含 1 和 N)之间所有正整数的平方,且 所输出的平方数之间以英文逗号隔开。

输入描述:输入一个正整数 N(N<30)

输出描述:输出 1 到 N 之间所有正整数的平方数,且所输出的平方数之间以英文逗号 隔开

【样例输入】

3

【样例输出】

1,4,9

N=int(input())
for i in range(1,N+1):
    if i == N:
        print(i**2)
    else:
        print(i**2,end=',')

第四题

【提示信息】

倍数与约数:如果 a 能被 b 整除,a 就叫做 b 的倍数,b 就叫做 a 的约数。约数和 倍数都表示一个整数与另一个整数的关系,不能单独存在。

最大公约数:几个整数中公有的约数,叫做这几个数的公约数;其中最大的一个,叫做 这几个数的最大公约数。

举例:12、16 的公约数有 1、2、4,其中最大的一个是 4,所以 4 是 12 与 16 的最大公约数。

最小公倍数:几个自然数公有的倍数,叫做这几个数的公倍数,其中最小的一个,叫做 这几个数的最小公倍数。

举例:4 的倍数有 4、8、12、16,…,6 的倍数有 6、12、18、24,…,4 和 6的公倍数有 12、24,…,其中最小的是 12,所以 4 和 6 最小公倍数为 12。

【编程实现】

分别输入两个正整数(1<正整数<201),输出这两个正整数的最大公约数 M 及最小公 倍数 N(注:M 和 N 之间以一个英文逗号隔开)。

输入描述:第 1 行输入第一个正整数第 2 行输入第二个正整数

输出描述:输出这两个正整数的最大公约数 M 及最小公倍数 N(M 和 N 之间以一个 英文逗号隔开)

【样例输入】

4

6

【样例输出】

2,12

a=int(input())
b=int(input())
if a>b:
    x=a
    y=b
else:
    x=b
    y=a
gys = gbs = 0
    
while x>0:
    if a%x==0 and b%x==0:
        gys=x
        break
    x-=1

while True:
    if y%a==0 and y%b==0:
        gbs=y
        break
    y+=1
print('%d,%d'%(gys,gbs))

第五题

【提示信息】

一个正整数如果任何一个数位小于等于右边相邻的数位,则称为一个数位递增数。 例如: 1135 是一个数位递增数 1024 不是一个数位递增数

【编程实现】

输入一个正整数 n(10

输入描述:输入一个正整数 n(10

输出描述:输出 10 到 n 中有多少个数位递增数

【样例输入】

15

【样例输出】

5

【上述输入输出样例的进一步解释】

用户输入的正整数,即样例输入为 15,10 到 15 之间的数位递增数有:11、12、 13、14、15。所以样例输出为 5。

def is_dzs(x):
    x=str(x)
    for i in range(len(x)-1):
        if x[i]>x[i+1]:
            return False
    return True

n=int(input())
count=0
for i in range(10,n+1):
    if is_dzs(i):
        count+=1
print(count)

你可能感兴趣的:(少儿编程,蓝桥杯,python)