蓝桥杯python编程每日刷题day one

小知识点:round(number,7)可以来实现对数的包留7位小数

也可以number= 3.14159265358

new_number = “{:.7f}".format(number)

题目1:判断闰年(是4的倍数而不是100的倍数,或者是400的倍数)

(1)代码:

a = int(input())
if (a % 4 == 0 and a % 100 != 0) or (a % 400 == 0):
    print("yes")
else:
    print("no")

(2)解析:

利用除法来运算

3)注意事项:

input函数所打印的内容是字符串,还需要加上int,同时在if条件句中用()来表示一个整体

题目2:判水仙花数,如153 = 1**3 + 5**3 + 3 ** 3

(1)代码:

number = input()
number_list = list(number)
num = 0
for i in number_list:
    num = num + int(i) ** 3
    if int(i) == int(number_list[-1]):
        if num == int(number):
            print("yes")
        else:
            print("no")

(2)解析:

因为要用到每个数立方的相加,可以把一个整数变成列表,这样列表中就有了每一个数,就可以来进行相加

3)注意事项:

对于list()函数本质上是来进行迭代的,其中数不可以进行迭代

(1).2代码:

num = int(input('请输入一个三位效:'))
if num == pow(num //100,3)+ pow(num %10,3)+ pow(num // 10 % 10,3):
    print("yes")
else:
    print("no")

(2)解析:

num // 100 是算153的1,num % 10 是算153的3,num // 10 % 10 是算153的5

3)注意事项:

pow(x,y)是算x的y次方,在算一个数的各位上的数时,可以先算num//10 ,来获取最后一个数,同时,用num % 10 来去除最后一个数,以此来做一个循环

题目3:列举一个100一内2的斐波那契数列

(1)代码:

list = [0,1,1]
def fi(n):
    for i in range(n -2): #比如要算第5项,即列表有6个数,就需要算3遍
        num = list[-1] + list[-2]
        list.append(num)
while list[-1] < 100:
    n = 3
    fi(n)
    n = n + 1
list.pop()
print(list)

(1).2代码

x = 1
y = 1
print(x,end="\n")
print(y,end="\n")
while True:
    z = x + y
    x = y
    y = z
    if z > 100:
        break
    print(z,end="\n")

题目4:给出一个整数,求出1+2+3+...+n

(1)代码:

n = int(input())
num = n
while True:
    n = n -1
    num = num + n
    if n == 1:
        break
print(num)

题目5:

给定两个仅由大写字母或小写字母组成的字符串(长度介于1到10之间),它们之间的关系是以下4中情况之一.
1:两个字符串长度不等。比如 Beiing 和 Hebei
2:两个字符串不仅长度相等,而且相应位置上的字符完全一致(区分大小写),比如 Beijing 和 Beijing
3:两个字符串长度相等,相应位置上的字符仅在不区分大小写的前提下才能达到完全一致(也就是说,它并不满足情况2)。比如beiing 和 BEljing
4:两个字符串长度相等,但是即使是不区分大小写也不能使这两个字符串一致。比如 Beiing 和 Nanjing编程判断输入的两个字符串之间的关系属于这四类中的哪一类,给出所属的类的编号。

(1)代码

def find_good_chips(test_results):
    n = len(test_results)
    best_set = []
    for i in range(n):
        # 构造候选集合C_i,包含i和所有被i测为好的芯片
        c_i = {i}
        for j in range(n):
            if j != i and test_results[i][j] == 1:
                c_i.add(j)
        # 检查候选集合中的所有芯片是否相互测为好的
        valid = True
        for k in c_i:
            for m in c_i:
                if k == m:
                    continue
                if test_results[k][m] != 1:
                    valid = False
                    break
            if not valid:
                break
        # 更新最佳候选集合
        if valid and len(c_i) > len(best_set) and len(c_i) > n / 2:
            best_set = list(c_i)
    return sorted(best_set)

# 示例输入
test_results_example = [
    [0, 1, 0, 0],  # 芯片0的测试结果
    [1, 0, 0, 0],  # 芯片1的测试结果
    [1, 1, 0, 0],  # 芯片2的测试结果(假设是坏芯片)
    [1, 1, 1, 0],   # 芯片3的测试结果(假设是好芯片)
]

# 调用函数
print(find_good_chips(test_results_example))

      

你可能感兴趣的:(蓝桥杯)