剑指Offer-和为S的连续正数序列
2024-08-25 22:20:04
题目:
小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck!
思路:
求和公式为:S = (a1+an)*n/2 = (a1+a1+n-1)*n/2,得到2a1 = 2s/n+1-n。因此,可以遍历n,并求出a1的值,若a1的值为正整数,则该序列符合条件。
代码:
class Solution {
public:
vector<vector<int> > FindContinuousSequence(int sum) {
vector<vector<int> > result;
double first_num;
for (int i = sum - ; i >= ; i--) {
if ( * sum % i == ) {
int temp = * sum / i;
if ((temp + - i) % == ) {
first_num = sum / i + ( - i) / ;
if (first_num > ) {
vector<int> seq;
for (int j = first_num; j < first_num + i; j++) {
seq.push_back(j);
}
result.push_back(seq);
}
}
}
} return result;
}
};
最新文章
- sql server中将一个字段根据某个字符拆分成多个字段显示
- PostMessager来对子父窗体进行跨域
- ADO.NET 快速入门(九):使用关系型数据
- Codeforces Round #333 (Div. 1) B. Lipshitz Sequence 倍增 二分
- r.js 配置文件 build.js 不完整注释
- SQL Server select into用法
- 使用 Scut 搭建通服架构
- bootstrap模态框垂直居中
- QT 中setUserData和setProperty问题
- canvas绘制圆心扇形可组成颜色随机的七色小花
- hdu 5480(前缀和)
- CTF丨2019互联网安全城市巡回赛&#183;西安站,我们来了!
- 【视频】ASP.NET Core MVC 2.* 入门
- java拦截器(interceptor)
- uni-app 点击切换图标
- ASP.NET MVC和ASP.NET Core MVC中获取当前URL/Controller/Action (转载)
- 中间人攻击工具mitmf(另类的XSS注入攻击)
- Android+Struts2实现简单的前后台交互--Android网络编程
- <;meta content=&#39;IE=edge,chrome=1&#39; http-equiv=&#39;X-UA-Compatible&#39; />;
- python 获取中文文件名的输出