第十五届蓝桥杯省赛PythonA组B题【召唤数学精灵】题解

在这里插入图片描述

解题思路

A ( i ) = 1 + 2 + 3 + ⋯ + i A(i) = 1 + 2 + 3 + \dots + i A(i)=1+2+3++i
B ( i ) = 1 × 2 × 3 × ⋯ × i B(i) = 1 \times 2 \times 3 \times \dots \times i B(i)=1×2×3××i

要使 ( A ( i ) − B ( i ) ) % 100 = 0 (A(i) - B(i)) \% 100 = 0 (A(i)B(i))%100=0,应当要有 A ( i ) % 100 = B ( i ) % 100 A(i) \%100 = B(i) \% 100 A(i)%100=B(i)%100

B % 100 = 1 , 2 , 6 , 24 , 20 , 20 , 40 , 20 , 80 , 0 , 0 , 0 , 0 , … B \%100 = 1, 2, 6, 24, 20, 20, 40, 20, 80, 0, 0, 0, 0, \dots B%100=1,2,6,24,20,20,40,20,80,0,0,0,0,

我们会发现当 i ≥ 10 i \geq 10 i10 时, B ( i ) % 100 B(i) \% 100 B(i)%100 均为 0 0 0,因为 1 × 2 × 3 ⋯ × 10 1 \times 2 \times 3 \dots \times 10 1×2×3×10 中含有两个因子 5 5 5,和多个( ≥ 2 \geq2 2)因子 2 2 2 2 × 5 = 10 2 \times 5 = 10 2×5=10,当存在 ≥ 2 \geq 2 2 个因子 5 5 5 2 2 2 时,后两位必为 00 00 00

A ( i ) = 1 + 2 + 3 + ⋯ + i = i × ( i + 1 ) ÷ 2 A(i) = 1 + 2 + 3 + \dots + i=i \times (i + 1) \div 2 A(i)=1+2+3++i=i×(i+1)÷2

A ( i ) % 100 = i × ( i + 1 ) ÷ 2 % 100 A(i) \% 100 = i \times (i + 1) \div 2 \% 100 A(i)%100=i×(i+1)÷2%100

要使 A ( i ) % 100 = 0 A(i) \% 100 = 0 A(i)%100=0,即 i × ( i + 1 ) % 200 = 0 i \times (i + 1) \% 200 = 0 i×(i+1)%200=0

执行以下代码:

for i in range(1, 200 + 1):
    if i * (i + 1) % 200 == 0:
        print(i)

我们得知,一个长度为 200 200 200 的区间,会有 4 4 4 A ( i ) % 100 = 0 A(i) \% 100 = 0 A(i)%100=0

综上,我们可以先手动模拟计算 [ 1 , 9 ] [1, 9] [1,9] 的情况,再计算题目给出的区间内,有多少个 200 200 200,即可得到答案。

res = 2024041331404202 // 200 * 4

s1 = 0
s2 = 1
for i in range(1, 9 + 1):
    s1 += i
    s2 *= i
    if s1 % 100 == s2 % 100:
        res += 1

print(res)

运行结果:

40480826628086
  • 8
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
蓝桥杯是一个国内著名的计算机比赛,为了帮助参赛者更好地准备和了解比赛的型,委会会公布历年的真并提供相应的题解。 首先,我们需要了解蓝桥杯是一个综合性的计算机比赛,测试的对象包括计算机基础知识、编程能力以及解决实际问的能力。 在历年的真中,参赛者将面临不同类型的目,包括算法设计与优化问数据结构算法、编程等。其中针对Python B目主要考察的是对Python语言的掌握和应用能力。 目解答一般会包含以下几个方面的内容: 1. 目分析与理解:读取目,理解目的要求和限制条件。通过仔细分析目,确定目的输入与输出,以及问的核心。 2. 设计解决方案:根据目要求和限制条件,设计一个合适的解决方案。可以使用合适的算法数据结构来解决问,并做出相应的性能优化。 3. 编写代码实现:根据设计的方案编写相应的代码实现。需要注意的是,Python语言有其独特的语法和特性,掌握好这些特性可以更好地完成编程任务。 4. 调试与测试:编写完代码后,需要进行调试和测试。通过运行样例输入和输出,检查代码是否符合目要求,并且没有逻辑上的错误。 5. 总结与优化:在完成目解答后,可以进行总结和优化。包括分析算法复杂度、代码风格和可读性等方面,以便在比赛中更好地表现。 在准备蓝桥杯时,可以通过阅读历年的真题解来了解比赛的难度和类型,针对性地进行练习和提高。同时也可以参加相关的培训班和讨论活动,与其他参赛者交流经验和技巧。 总而言之,历年蓝桥杯的解答对于提高自己的编程能力和应对比赛非常有帮助。通过认真分析和实践,可以更好地理解并掌握Python编程,并在比赛中取得更好的成绩。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值