【打卡-蓝桥杯】Day 3 ---切片 逆序list[::-1]

题目 1 :基础练习 杨辉三角形

在这里插入图片描述

解题思路

”第i+1行是(a+b)i的展开式的系数“,因此 使用 C i k C_{i}^{k} Cik 计算
方法二:二维数组

代码

def factorial(n):
    """
    计算阶乘
    :param n:要计算的数
    :return: 结果
    """
    f = 1
    for i in range(1, n+1):
        f = f * i
    return f

def cik(n, k):
    """
    计算组合数
    :param n:下数
    :param k:上数
    :return:组合数结果
    """
    return int(factorial(n) / (factorial(k) * factorial(n-k)))

n = int(input())
for i in range(1, n+1):
    for j in range(1, i+1):
        print(cik(i-1, j-1), end=' ')
    print()

# 方法二
n = int(input())
num = [[0 for j in range(n)] for i in range(n)]
num[0][0] = 1
print(1)
for i in range(1, n):
    num[i][0] = 1
    print(1, end=' ')
    for j in range(1, i+1):
        num[i][j] = num[i-1][j-1] + num[i-1][j]
        print(num[i][j], end=' ')
    print()

题目 2 基础练习 特殊的数字

在这里插入图片描述

解题思路

判断

代码

def is_ans(n):
    a = n % 10
    b = (n // 10) % 10
    c = (n // 100) % 10
    if n == pow(a, 3) + pow(b, 3) + pow(c, 3):
        print(n)
for i in range(100, 1000):
    is_ans(i)

题目 3 :基础练习 回文数

在这里插入图片描述

解题思路

python 切片,正序和逆序相等

代码

for i in range(1000, 10000):
    if i == int(str(i)[::-1]):
        print(i)

题目 4 :基础练习 特殊回文数

在这里插入图片描述

解题思路

python 切片,正序和逆序相等
运行超时,因为每次都计算了判断,后文方法 判断不是回文数后,不执行后续判断

代码

""" 运行超时,因为每次都计算了判断,后文方法 判断不是回文数后,不执行后续判断
n = int(input())
for i in range(10000, 1000000):
    iStr = str(i)
    sum = 0
    for j in range(len(iStr)):
        sum += int(iStr[j])
    if iStr == iStr[::-1] and sum == n:
        print(i)
"""
def is_pal(num):
    num = str(num)
    if num == num[::-1]:
        return True
    else:
        return False
def sum_num(num):
    sum = 0
    num = str(num)
    for i in range(len(num)):
        sum += int(num[i])
    return sum

n = int(input())
for num in range(10000, 1000000):
    if is_pal(num) and sum_num(num) == n:
        print(num)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值