注册 登录
编程论坛 C++教室

自己写的,成功后未优化

天使梦魔 发布于 2012-05-18 08:36, 282 次点击
第一题(共四题100分):连续正整数(10分)  

题目描述:一个正整数有可能可以被表示为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  

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

百度之星程序设计大赛试题-2
程序代码:
#include <iostream>
using namespace std;
int main()
{
    int s,i;
    int test,sum,a;
    bool over;
    while(1)
    {
    over=0;i=1;
    cout<<"输入一个数:";cin>>s;
    while(i<=s)
    {
        sum=i;a=1;test=i;
        while(test<=s)
        {
            a++;
            sum++;
            test+=sum;
            if(test==s)
            {
                over=1;
                sum=i;
                while(a)
                {
                    cout<<sum<<" ";
                    sum++;a--;
                }
                cout<<endl;
            }
        }
        i++;
    }
    if(!over)cout<<"NONE\n";
    cout<<"\n\n\n";
    cin.get();
    }
}





1 回复
#2
天使梦魔2012-05-18 08:39
后面的不做了
我怎么感觉那个什么百度之星尽出些"月经"题,难道中国人一向喜欢捣鼓繁琐的逻辑问题,弄的像文言文一样就很得意?
为什么不是实际开发功能需求.
1