一个正整数有可能可以被表示为n(n>=2)个连续正整数之和,如:
15=1+2+3+4+5
15=4+5+6
15=7+8
请编写程序,根据输入的任何一个正整数,找出符合这种要求的所有连续正整数序列。
输入数据:一个正整数,以命令行参数的形式提供给程序。
例如,对于15,其输出结果是:
1 2 3 4 5
4 5 6
7 8
对于16,其输出结果是:
NONE
view plainprint?
1. #include
2.
3. static void getContinueNum(int);
4. static void output(int,int,int);
5.
6. void continueNumDemo()
7. {
8. getContinueNum(15);
9. }
10.
11. static void getContinueNum(int n)
12. {
13. int i;
14. int tmp;
15. int num;
16. num = 0;
17. for(i=2;i<=0)break;
20. if( tmp%(2*i)==0 ){
21. output(tmp/(2*i),i,n);
22. num ++;
23. }
24. }
25. if(num == 0){
26. printf("NONE");
27. }else{
28. printf("total:%d\n",num);
29. }
30. }
31.
3
没有评论:
发表评论