问题标题: 1174

0
0
已解决
颜咏春
颜咏春
中级光能
中级光能

如题

颜咏春在2018-01-13 13:35:06追加了内容

题目描述 Description

老师让大家做游戏,有很多同学,并不知道这些同学的总数。对这些同学从1开始按顺序进行编号,每位同学对应一个序号。首先老师报出一个整数N,若所有同学的序号之和减去其中一位同学序号的两倍,恰好等于这个数N,则请这位同学站起来说:“是我”。如果对老师报出的数N,没有同学符合这样的条件,则输出0;若有不止一位同学符合这样的条件,则符合条件的同学都站起来。请小明计算出站起来的同学的序号是多少,以及共有多少位小朋友参加了游戏。

输入描述 Input Description

输入一个正整数N。
对于70%的数据,N<=100
对于100%的数据,N<=10000

输出描述 Output Description

输出一行,两个正整数。分别是站起来同学的序号及共有多少位同学,用一个空格隔开。

样例输入 Sample Input


 

【样例输入一】
50

【样例输入二】
39

样例输出 Sample Output


 

【样例输出一】
8 11

【样例输出二】
3 9
8 10

数据来源 Source

小学组市赛模拟第二题

颜咏春在2018-01-24 13:59:44追加了内容

就给我一点点思落也可以


0
已采纳
黄俊博
黄俊博
资深光能
资深光能
 for i:=1 to 10000 do a[i]:=i;
    repeat
        inc(count);
        s:=s+count;
        for i:=1 to count do
        begin
            if s-a[i]*2=n then
            begin
                writeln(i,' ',count);
                inc(total);
            end;
        end;
    until count=1000;
0
0
颜咏春
颜咏春
中级光能
中级光能

cin>>n;

 

for(i=1;i<=n;i++){

 

sum+=i;

 

for(j=i;j>=1;j--){

 

if(sum-(j*2)==n){

 

flag=true;

 

cout<<j<<" "<<i<<endl;

 

}

 

}

 

}

 

if(!flag) cout<<"0"<<endl;

我要回答