题库首页 › 蓝桥杯大赛(Python) › 题目 14605

连续正整数和 题目描述 (注:input()输入函数的括号中不允许添加任何信息) 给定一个正整数 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. 输入描述 输入一个正整数n(3≤n≤108) 输出描述 输出一个整数,表示 n最多可以由多少个连续的正整数相加得到;如果n不能由连续的正整数相加得到,则输出 -1。 样例输入 100 样例输出 8

正确答案:参考程序(Python):n=int(input());best=-1;for length in range(2,n+1):x=n//length;if x-length//2<1:continue;start=x-(length-1)//2;if start<1:continue;if (2*start+length-1)*length//2==n:best=length;print(best)。样例100→8。核心:连续正整数和。

试卷来源:202408(第15届)蓝桥杯Python编程青少组(选拔赛_中/高级)真题

本卷相关题目

在线做题 同科目题库