剑指offerT41另外一种解法
来源:互联网 发布:linux把ip写入配置文件 编辑:程序博客网 时间:2024/06/15 23:48
void print(int s, int b)
{
for (int i = s; i <= b; i++)
{
cout << i << " ";
}
cout << endl<<"------------------------------" << endl;
}
void judgeshuzu(int sum)
{
int l = 1, r = 2;
int mid = (sum + 1) / 2;
int cursum = l + r;
while (l<mid)
{
if (cursum == sum)
{
print(l, r);
r++;
cursum = cursum + r;
}
else if (l<mid&&cursum > sum)
{
cursum = cursum - l;
l++;
}
else if (l<mid&&cursum < sum)
{
r++;
cursum = cursum + r;
}
}
}
void FindContinuousSequence(int sum)
{
if (sum < 3)
return;
int small = 1;
int big = 2;
int middle = (1 + sum) / 2;
int curSum = small + big;
while (small < middle)
{
if (curSum == sum)
print(small, big);
while (curSum > sum && small < middle)
{
curSum -= small;
small++;
if (curSum == sum)
print(small, big);
}
big++;
curSum += big;
}
}
int main()
{
judgeshuzu(15);
cout << "++++++++++++++++++++++++++++++++++++++++++++++++++" << endl;
FindContinuousSequence(15);
system("pause");
return 0;
}
{
for (int i = s; i <= b; i++)
{
cout << i << " ";
}
cout << endl<<"------------------------------" << endl;
}
void judgeshuzu(int sum)
{
int l = 1, r = 2;
int mid = (sum + 1) / 2;
int cursum = l + r;
while (l<mid)
{
if (cursum == sum)
{
print(l, r);
r++;
cursum = cursum + r;
}
else if (l<mid&&cursum > sum)
{
cursum = cursum - l;
l++;
}
else if (l<mid&&cursum < sum)
{
r++;
cursum = cursum + r;
}
}
}
void FindContinuousSequence(int sum)
{
if (sum < 3)
return;
int small = 1;
int big = 2;
int middle = (1 + sum) / 2;
int curSum = small + big;
while (small < middle)
{
if (curSum == sum)
print(small, big);
while (curSum > sum && small < middle)
{
curSum -= small;
small++;
if (curSum == sum)
print(small, big);
}
big++;
curSum += big;
}
}
int main()
{
judgeshuzu(15);
cout << "++++++++++++++++++++++++++++++++++++++++++++++++++" << endl;
FindContinuousSequence(15);
system("pause");
return 0;
}
阅读全文
0 0
- 剑指offerT41另外一种解法
- 特殊的组合问题(另外一种解法)
- 水仙花数的另外一种解法
- Company A面试 笔试 : 爬山 算步骤 问题 另外一种解法
- 另外一种累
- 另外一种写法如下:
- factorial的另外一种算法
- 妻子 的另外一种解释
- DAX 错误另外一种解决办法
- ALV的另外一种写法
- ASSIGN的另外一种用法。
- DEBUG的另外一种方法
- HDP的另外一种构架
- python yield 另外一种用法
- 数组的另外一种写法
- 反射的另外一种方法
- 指数函数的另外一种实现
- AfxMessageBox另外一种快速使用方法
- 前端工程化
- SpringMvc Controller介绍和常用注解
- java AWT菜单
- (UART 与 USART有什么区别)&(SPI、I2C、UART三种串行总线协议的区别)
- 初探SpringBoot
- 剑指offerT41另外一种解法
- 通过虚拟机搭建缓存集群
- Is Derek lying? HDU
- hdu-1024 多段子段最大和问题
- 第二章 进程管理
- Python: PS 滤镜-- 极坐标变换到平面坐标
- GitHub+node.js+hexo搭建个人博客教程
- Java之Lombok
- 习题7-13:数字表达式