蓝桥杯 基础练习全解 答案+解析 共17题 python

g = i % 10

s = i // 10 % 10

b = i // 100

suit1 = 2 * (s+b) + g # 5位数,除中间那个数外其他数出现过两遍

suit2 = 2 * (g+s+b) # 6位数,每个数都出现过两遍

if suit1 == su:

i = str(i)

num = int(i+i[:-1][::-1]) # i[:-1][::-1]表示得到除最后一个数外的倒序排列

result.append(num)

当su = 2 时,两种可能均可出现,所以这里不能用elif

if suit2 == su:

i = str(i)

num = int(i+i[::-1])

result.append(num)

result.sort()

for i in result:

print(i)


特殊的数字


在这里插入图片描述

依据题意, 我们获取三位数中的每一位数上的数字,然后对他们求和比较看是否相等,如果相等则输出。

for i in range(100,1000):

g = i % 10

s = i // 10 % 10

b = i //100

if i == g ** 3 + s ** 3 + b ** 3:

print(i)


杨辉三角形


在这里插入图片描述

看到杨辉三角形我们很容易想到一个数等于它肩膀两数之和,通过这一性质可以得出每一行三角形元素的值。但是,这一次我没有用这个方法。

我们知道杨辉三角左右两边对称,因此我们只要求出左半部分就能得到一整行的元素了,杨辉三角还跟组合数有关,其里面的每一个元素都能用组合数表示。第N行的第M列可以表示成C(N-1,M-1),如6在第5行的第3列,它对应的组合数就是C(5-1,3-1),即C(4,2)。

在这里插入图片描述

因此,我们需要定义一个求组合数的函数。C(5,2) 可以表示成 (5 x 4) / (2 x 1) 也可以表示成(5/2)x (4/1)。那么我们的组合数可以这么写:

def C(a,b):

if b == 0:

return 1

if b > a: # 组合数性质(C(a,b) = C(a,a-b))

b =

  • 14
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值