当前位置: 首页 > news >正文

蓝桥杯 阶乘的和

题目

链接

分析

  • 其实是简单的数学思想
    n个数先排序,得到从小到大的a1~an

  • 这些数的阶乘和可以提取出最小的a1的阶乘
    然后看是否可以从剩下的和式中提取出a1+1
    条件就是原来a1的数量要是a1+1的整数倍,因为提取a1的阶乘时,a1会变成1,其他会变成a1+1累乘到ai,因此其他一定可以提出ai+1

  • 如果可以提出a1+1,我们再看是否可以提出a1+2
    条件就是上一步提取a1+1后剩余的部分是否可以整除a1+2,这里可以设置一个pre保留上一步中a1个数整除a1+1的结果,因为这个是上一步提取后和式里剩下的
    现在需要判断pre与a1+1的和是否可以整除a1+2,因为同理和式里大于等于a1+2的数的阶乘都可以提出a1+2

  • 上面的步骤不断循环,判断能不能一步步往前提即可

代码

n = int(input())
a = list(map(int, input().split()))

# 排序
a.sort()

# 记录每个数出现的次数
num = {i: 0 for i in a}
for i in a:
    num[i] += 1

m = a[0]
pre = 0
new = num[m]
while (pre + new) % (m + 1) == 0:
    pre = (pre + new) // (m + 1)
    m += 1
    new = num[m] if m in num else 0

print(m)

http://www.dtcms.com/a/74994.html

相关文章:

  • 登录Xshell主机及Linux基本指令
  • SpringBoot之一个注解完成所有类型的文件下载!
  • MySQL UPDATE 更新操作详解
  • 深入解析GORM的配置选项及示例
  • clickhouse清除system 表数据释放磁盘空间
  • 内容中台智能推荐服务创新路径
  • 网上怎么样可以挣钱,分享几种可以让你在家赚钱的兼职项目
  • 开发过程中的网络协议
  • SpringMVC(八)Knife4j 接口文档
  • XML 树结构
  • 爬虫逆向:逆向中用到汇编语言详细总结
  • 网络层协议
  • 教育直播培训系统源码解析:核心功能与实现方式
  • Android Room 框架公共模块源码深度剖析(四)
  • React Native 如何使用 Expo 快速开发?
  • 《C#上位机开发从门外到门内》3-2::Modbus数据采集系统
  • 缓存相关内容
  • 为wordpress核心functions文件瘦身
  • windows常用cmd命令
  • 【Unity3D】Addressables使用流程
  • S32K144入门笔记(十一):PDB的解读
  • 深度学习处理时间序列(1)
  • Unity物理射线滤除某层
  • FPGA中级项目1——IP核(ROM 与 RAM)
  • 黑马JUC学习笔记-上
  • LabVIEW烟气速度场实时监测
  • 路径问题(greedy):地下城游戏
  • Word 小黑第40套
  • 微服务无状态服务设计
  • token升级(考虑在分布式环境中布置token,结合session保证请求调用过程中token不会过期。)