发博文
人生如逆旅,我亦是行人!江湖人称wsj

jeremy.blog.chinaunix.net

生活可以将就,生活也可以讲究! 猥琐也是一种心态   
个人资料
  • 博客访问:1726578
  • 博文数量:1067
  • 博客积分:12060
  • 博客等级:上将
  • 关注人气: 8
  • 注册时间:2008-08-15 16:57:52
订阅我的博客
  • 订阅
  • 订阅到鲜果
  • 订阅到抓虾
  • 订阅到Google
字体大小: 博文
分类: 笔试题


题目描述:一个正整数有可能可以被表示为 n(n>=2) 个连续正整数之和,如:

15=1+2+3+4+5
15=4+5+6
15=7+8

请编写程序,根据输入的任何一个正整数,找出符合这种要求的所有连续正整数序列。

输入数据:一个正整数,以命令行参数的形式提供给程序。

输 出数据:在标准输出上打印出符合题目描述的全部正整数序列,每行一个序列,每个序列都从该序列的最小正整数开始、以从小到大的顺序打印。如果结果有多个序 列,按各序列的最小正整数的大小从小到大打印各序列。此外,序列不允许重复,序列内的整数用一个空格分隔。如果没有符合要求的序列,输出 “NONE” 。

例如,对于 15 ,其输出结果是:
1 2 3 4 5
4 5 6
7 8
对于 16 ,其输出结果是:
NONE

评分标准:程序输出结果是否正确。

#include <stdio.h>
#include <stdlib.h>
#define N 20

int main()
{
    int flags=0;
    int count=0;
    int i;
    int j;
    int k;;
    int sum=0;
    int end=0;
    for(i=1;i<N;i++)
    {
        //printf("This time i is %d\n",i);


        sum += i;
        for(j=i+1;j<N && sum<N;j++)
        {
            sum += j;
            if(sum == N)
            {
                end=j;
                break;
            }//else if(sum > n)


                
        }
        //printf("sum >n\n");


        sum = 0;
        if((end==0)) continue;
            else
        {
            count=i;
            for(k=0;k<=end-i;k++)
            {printf("%d ",count++);}
            flags=1;
            printf("\n");
       }
        end=0;sum=0;
        
    
    }
    if (flags==0)
            printf("NONE\n");
return 0;

}

我的更多文章
[发评论] 评论 重要提示:警惕虚假中奖信息!
  • chinaunix网友 2010-04-10 09:20
    对的,测试了
  • ubuntuer 2009-08-30 09:50
    还有blog里的东西只要不是转载的,我贴的code都是我运行正确之后的... 在你那里不对?怎么不对?环境?error code帖上,不要就丢个不对...
  • ubuntuer 2009-08-30 09:48
    我自己是跑过了的,是对的!!!! 这题是N久之前写的了,看这个 printf("Please input x:"); scanf("%d", &x); for(n = 2; n * n < x * 2; ++ n){ int a = (2 * x / n - n + 1) / 2; /*下面这句也许从数学角度来说是恒等式,这就是程序的妙处^_^,跑一下你就知道了*/ if( n * a + n * (n - 1) / 2 == x){ for(i = 0; i < n; ++i) printf("%d ", a + i); printf("\n"); exist = 1; } } if(!exist) printf("none\n");
  • chinaunix网友 2009-08-30 09:14
    不对吧,自己上机试一下,N=15都不对
亲,您还没有登录,请[登录][注册]后再进行评论