python 蓝桥杯练习题

  1. 问题描述:输入A、B,输出A+B。
a,b=input().split(' ')
print(int(a)+int(b))

  1. 问题描述:给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1<=n<=200
n = int(input())
a = list(map(int, input().split()))
if len(a) == n and 1 <= n <= 200:
    a.sort()
    for each in a:
        print(each, end=' ')

  1. 问题描述:给定n个十六进制正整数,输出它们对应的八进制数。
n = int(input())
a = []
for i in range(n):
    a.append(input())
for each in a:
    print(oct(int(each, 16)).split("o")[1])
  1. 问题描述:从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
    注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
n = int(input(),16)
print(n)

  1. 问题描述:十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满16进1,所以十进制数16在十六进制中是10,而十进制的17在十六进制中是11,以此类推,十进制的30在十六进制中是1E。给出一个非负整数,将它表示成十六进制的形式。
a = int(input())
print(hex(a).split("x")[1].upper())

  1. 问题描述:123321是一个非常特殊的数,它从左边读和从右边读是一样的。
      输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。
n=int(input())
for i in range(10000,1000000):
    j=str(i)
    if j==j[::-1]:
        a=0
        for each in j:
            a+=eval(each)
        if a==n:
            print(i)
  1. 问题描述:1221是一个非常特殊的数,它从左边读和从右边读是一样的,编程求所有这样的四位十进制数。
for i in range(1000,10000):
    j=str(i)
    if j==j[::-1]:
        print(i)
  1. 问题描述:153是一个非常特殊的数,它等于它的每位数字的立方和,即153=111+555+333。编程求所有满足这种条件的三位十进制数。
for i in range(100,1000):
    j=str(i)
    a=eval(j[0])**3+eval(j[1])**3+eval(j[2])**3
    if a==i:
        print(i)

  1. 问题描述:杨辉三角形又称Pascal三角形,它的第i+1行是(a+b)i的展开式的系数。
    它的一个重要性质是:三角形中的每个数字等于它两肩上的数字相加。  
    下面给出了杨辉三角形的前4行:  
    1  
    1 1  
    1 2 1  
    1 3 3 1  
    给出n,输出它的前n行。
n=int(input())
x=[]
for i in range(1,n+1):
    if i==1:
        x.append(1)
        print(1)
    else:
        for j in range(1,i+1):
            if j==1:
                x.append(1)
                print(1,end=' ')
            elif j==i:
                x.append(1)
                print(1)
            else:
                a=i*(i+1)//2-i+j
                x.append(x[a-i]+x[a-i-1])
                print(x[a-i]+x[a-i-1],end=' ')
  1. 问题描述:给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个。
n=int(input())
b= list(map(int, input().split()))
a=int(input())
j=0
for each in b:
    if each==a:
        print(b.index(a)+1)
        j+=1
        break
if j==0:
    print(-1)
  1. 问题描述:给出n个数,找出这n个数的最大值,最小值,和。
n=int(input())
b= list(map(int, input().split()))
a=0
if len(b)==n:
    print(max(b))
    print(min(b))
    for each in b:
        a+=each
    print(a)
  1. 问题描述:利用字母可以组成一些美丽的图形,下面给出了一个例子:
    ABCDEFG
    BABCDEF
    CBABCDE
    DCBABCD
    EDCBABC
    这是一个5行7列的图形,请找出这个图形的规律,并输出一个n行m列的图形。
num = list(map(int,input().split()))
n = num[0]
m = num[1]
d = [chr(i) for i in range(65,91)]#先获得字母表的字母
for i in range(n):
    for j in range(m):
        k = abs(i - j)#找规律,发现每个字母的位置对应其行数减去其列数的绝对值
        print(d[k],end = '')
    print()
  1. 问题描述:对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是:
    00000
    00001
    00010
    00011
    00100
    请按从小到大的顺序输出这32种01串。
for i in range(32):
    a=str(bin(i)).split("b")[-1]
    if len(a)<5:
        for i in range(5-len(a)):
            a="0"+a
    print(a)
  1. 问题描述:给定一个年份,判断这一年是不是闰年。
    当以下情况之一满足时,这一年是闰年:
    年份是4的倍数而不是100的倍数;
    年份是400的倍数。

    其他的年份都不是闰年。
y=int(input())
if (y%4==0 and y%100!=0) or y%400==0:
    print("yes")
else:
    print("no")

  1. 问题描述:Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。
    当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。
    这里先进行(a+b)%10007和整体得到Fn后在取余结果是一样的,可以将它写成数学的形式就能理解
n=int(input())
a=1
b=1
if n==1 or n==2:
    print(1)
else:
    for each in range(1,n):
        c=(a+b)%10007
        a,b=b,c
    print(a)
  1. 问题描述:给定圆的半径r,求圆的面积。
import math
r=int(input())
S=math.pi*r**2
print('{:.7f}'.format(S))
  1. 问题描述:求1+2+3+…+n的值。
    这里要注意n的范围是[1,1000000000],正常的for循环时间上会很慢。
n=int(input())
sum=int((1+n)*n/2)
print(sum)
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

火眼猊

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

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

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

打赏作者

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

抵扣说明:

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

余额充值