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

网络公司构建网站杭州旅游团购网站建设

网络公司构建网站,杭州旅游团购网站建设,软件开发工具教材,网站开发tahmwlkjpython连续正整数和 第十五届蓝桥杯青少年组python比赛省赛真题详细解析 博主推荐 所有考级比赛学习相关资料合集【推荐收藏】 1、Python比赛 信息素养大赛Python编程挑战赛 蓝桥杯python选拔赛真题详解 蓝桥杯python省赛真题详解 蓝桥杯python国赛真题详解 2、Python…

python连续正整数和

第十五届蓝桥杯青少年组python比赛省赛真题详细解析

博主推荐

  • 所有考级比赛学习相关资料合集【推荐收藏】

1、Python比赛

  • 信息素养大赛Python编程挑战赛

  • 蓝桥杯python选拔赛真题详解

  • 蓝桥杯python省赛真题详解

  • 蓝桥杯python国赛真题详解

2、Python考级

  • python等级一级真题解析【电子学会】

  • python等级二级真题解析【电子学会】

  • python等级三级真题解析【电子学会】

  • python等级四级真题解析【电子学会】

一、题目要求

(注:input()输入函数的括号中不允许添加任何信息)

1、编程实现

给定一个正整数 n,请计算n最多可以由多少个连续(2个及以上)的正整数相加得到,如果n不能由连续的正整数相加得到,则输出-1。

例如:n=100;100 可以由以下2组连续的正整数相加得到。

第一组:9、10、11、12、13、14、15、16;

第二组:18、19、20、21、22;

100 最多可以由 8个连续的正整数相加得到,输出8。

例如:n=8, 8不能由连续的正整数相加得到,输出-1。

2、输入输出

输入描述:只有一行,一个正整数n(3≤n≤10^8)

输出描述:只有一行,一个整数,表示 n最多可以由多少个连续的正整数相加得到;如果n不能由连续的正整数相加得到,则输出 -1。

输入样例:

100

输出样例:

8

二、算法分析

  1. 目标:输入n,得到最多可以由多少个连续的正整数相加
  2. 策略:可以先分析一下连续正整数相加的规律,如果有i个连续的正整数相加,起始数字为k,可以表示为:n=k+(k+1)+(k+2)+...+(k+i-1)
  3. 将上面等式化简可以得到:i * (2k + i - 1) / 2 = n,进而得到:2n=i * (2k + i -1)
  4. 由于k是整数,所以2k+i-1大于i,所以2n>i*i,得到 i<sqrt(2n)
  5. 接着就可以遍历每个i从2开始一直到sqrt(2n),检查 (2n-i*(i-1)) 是否能被 2i 整除,并且满足除完之后为正整数,如果找到这样的i就是满足条件的,否则输出-1

本文作者:小兔子编程 作者首页:小兔子编程-CSDN博客

三、程序编写

n = int(input())
res = -1
m = int((2 * n) ** 0.5)
for i in range(2, m + 1):num = 2 * n - i * (i - 1)if num <= 0:breakif num % (2 * i) == 0:k = num // (2 * i)if k > 0:res = i
print(res)

四、程序说明

  1. 利用input输入函数从键盘获取输入数据
  2. 利用int函数将n转换成整数类型
  3. 利用数学求和公式得到i的最大取值为2n的开平方
  4. 连续求和的个数必须是从2个数开始
  5. 利用for循环遍历连续求和的个数,从2开始到最大
  6. 接着num是由求和公式变形而来,得到的是分子,必须是大于0,同时对应的分母就是2*i
  7. 所以必须满足能被整除,最后只要整除的数字大于0,则最大的个数就是i
  8. 利用分支语句if对数字进行校验是否满足条件
  9. 最后通过print函数输出即可

五、运行结果

100
83
2

六、考点分析

难度级别:难,这题相对小朋友们来说有一定的难度,难在数学公式的应用,具体主要考查如下:

  1. 学会分析题目,找到解题思路
  2. 学会简单的算法知识的应用
  3. input函数:Python 中 input() 函数接受一个标准输入数据,返回为 string 类型。
  4. int函数:强制将传入对象转换成整数类型
  5. 学会数学求和公式的使用,以及相应变形公式的应用
  6. 学会for循环的使用:for循环可以遍历任何有序的项及列表元素等等。
  7. range函数:rang(a,b),循环的时候是不包括b的,所以我们这个案例中要转变一下,要想包含b,就应该写成range(a,b+1)
  8. 学会if...条件判断语句的使用:满足条件才执行相应的程序
  9. print函数:用于打印输出,最常见的一个函数。
  10. 充分掌握for循环和数学求和公式及分支语句的使用

PS:方式方法有多种,小朋友们只要能够达到题目要求即可!

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

相关文章:

  • 【数值分析】非线性方程与方程组的数值解法的经典算法(附MATLAB代码)
  • 文件外链网站智慧团建官网登录入口电脑版
  • 如何在Windows上为Java配置多个版本的环境变量
  • 如何将自己做的网站放到网上去如何做电商创业
  • 杭州市建设信用网郑州优化网站关键词
  • 农业与供应链类 RWA 落地研究报告
  • p2p理财网站开发cms和wordpress
  • 合肥seo整站优化网站做跳转付款
  • 物联网的调试
  • React项目开发(代码架构/规范怎么做)?
  • 做视频网站要准备哪些资料广告设计与制作好找工作吗
  • 双token登录
  • [Backstage] 认证请求的流程 | JWT令牌
  • 简述网站规划的一般步骤马鞍山集团网站设计
  • 使用 Rufus 制作启动盘安装 Windows 与 Ubuntu 系统全流程教程(图文详解+避坑指南)
  • 网站建设项目清单价格海口网站建设哪家最好
  • 网站接入服务商网站app建设图片素材
  • 3ds Max从入门到精通:建模、动画与渲染完整实战教程
  • 建设工程项目编号在什么网站查网站建设方案的内容
  • 做网站 多少钱全国优秀施工企业查询
  • 【免费】轻量级服务器centos监控程序+内存+cpu+nginx+适合小型站长使用
  • 青岛模板建站代理模板建站公司
  • 瑞芯微算法环境搭建(1)------编译ffmpeg
  • python策略网站怎么做seo策略工具
  • 建立了公司网站网络营销心得体会
  • 从 C 到 C++:容器适配器 std::stack 与 std::queue 详解
  • 工信部网站备案查询 验证码错误2019年建设银行安徽招聘网站
  • wordpress网站如何搬家wordpress开发入门视频教程
  • 电子商务网站建设与管理思考与练习做暧视频免费网站
  • 建站公司兴田德润网页制作模板 html