输入一个正数 n,输出所有和为n 连续正数序列。
来源:互联网 发布:阿里云logo 矢量 编辑:程序博客网 时间:2024/04/19 15:56
题目:输入一个正数 n,输出所有和为n 连续正数序列。
例如输入 15,由于1+2+3+4+5=4+5+6=7+8=15,所以输出3 个连续序列1-5、4-6 和7-8。
可以发现任意自然数序列其实是公差为1的等差数列,那么数列前N项和公式有a1*n +n*(n-1)/2 = sn,而这里sn = 输入的正整数input。通过分析a1只需在集合[1,input/2]中,把上式等效变形为n*n+(2a1-1)n-2input = 0,n的取值为2a分之负b加减根号下b方减4ac,哈,如果n为一个正整数,那么符合条件输出
1 #include <stdio.h> 2 #include <math.h> 3 int main() 4 { 5 int n; 6 int i=0; 7 int j=0; 8 int num=0; 9 double tmp=0; 10 scanf("%d",&n); 11 for(i=1;i<=n/2;i++) 12 { 13 num=(2*i-1)*(2*i-1)+8*n; 14 tmp=sqrt(1.0*num); 15 if(tmp!=(int)tmp) 16 continue; 17 18 num=(1-2*i+(int)tmp); 19 if(num%2==0&&num>0) 20 { 21 for(j=0;j<num/2;j++) 22 printf("%d ",i+j); 23 printf("\n"); 24 25 26 } 27 28 } 29 return 0; 30 }
- 输入一个正数n,输出所有和为n连续正数序列。
- 输入一个正数n,输出所有和为n连续正数序列。
- 输入一个正数n,输出所有和为n 连续正数序列
- 输入一个正数 n,输出所有和为 n 的连续正数序列 [No. 25]
- 【每日面试题】输入一个正数n,输出所有和为n连续正数序列
- 输入一个正数n,输出所有和为n连续正数序列
- 输入一个正数 n,输出所有和为n 连续正数序列。
- 输入一个正数n,输出所有和为n连续正数序列。
- 输入一个正数 n,输出所有和为 n 连续正数序列。
- 输入一个正数n,输出所有和为n连续正数序列
- 输入一个正数n,输出所有和为n连续正数序列。
- 算法习题51:输入一个正数n,输出所有和为n连续正数序列
- 输入一个正数n,输出所有和为n 连续正数序列
- 输入一个正数n,输出所有和为n 连续正数序列
- 输入一个正数n,输出所有和为n的连续正数序列
- 【算法学习-01】 输入一个正数 n,输出所有和为 n 连续正数序列。
- 网易面试题 输入一个正数n,输出所有和为n连续正数序列
- 输入一个正数n,输出所有和为n连续正整数序列
- cocosd-x 内存管理
- 空间分析之插值分析
- 由一个需求聊聊WCF(五)
- 伊邪娜美
- 10个最常见的WordPress的错误及解答
- 输入一个正数 n,输出所有和为n 连续正数序列。
- Ext.NET学习笔记之1(环境搭建)
- 纪念一下--ECLIPSE+JLINK单步调试OK6410终于成功
- 裸奔程序之UART
- STL里list、vector、queue性能差异与疑似内存泄漏问题
- AC自动机算法
- 初探hibernate3(3.6.10.final)之helloworld
- springMail开发的一个简单的小例子
- 利用Servlet的过滤器过滤非法文字!