【循环结构】连续自然数和

该博客探讨了如何找到所有连续的自然数段,其和等于给定的整数M。通过提供一个例子和输入输出样例,解释了当M等于10000时,连续数段如18到142、297到328等的求解过程。作者提出使用双循环算法,从2开始,依次累加数字,直到累加和大于或等于M,若和等于M则输出数段的起始和结束数字。
摘要由CSDN通过智能技术生成

题目描述
对一个给定的自然数M,求出所有的连续的自然数段(连续个数大于1),这些连续的自然数段中的全部数之和为M。
例子:1998+1999+2000+2001+2002 = 10000,所以从1998到2002的一个自然数段为M=10000的一个解。
输入
一行,包含一个整数为M的值(1<= M <= 2,000,000)
输出
每行两个自然数,给出一个满足条件的连续自然数段中的第一个数和最后一个数,两数之间用一个空格隔开,可能有多种答案,都要输出,所有输出行的第一个数按从小到大的升序排列,对于给定的输入数据,保证至少有一个解。
样例输入
10000
样例输出
18 142
297 328
388 412
1998 2002
思路:两个循环,第一个循环i从2~m,第二个循环将数字从i开始往下依次叠加,叠加和大于m时退出循环,等于m时输出k和i;

# include<cstdio>
# include <iostream>
using namespace std;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值