新手光能
1174 游戏(game)
经验值:400 时间限制:1000毫秒
题目描述 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
80分代码
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n,sum=0,flag;
cin>>n;
for(int i=1;i<=n;i++){
sum+=i;
for(int j=i;j>=1;j--){
if(sum-(j*2)==n){
flag=true;
cout<<j<<" "<<i<<endl;
}
}
}
if(!flag){
cout<<"0"<<endl;
}
return 0;
}
(测试点5和9错了,币多的帮我看看呗)
@所有大佬
中级天翼
for(int i=1;i<=n;i++){ sum+=i; for(int j=i;j>=1;j--){ if(sum-(j*2)==n){ flag=1; cout<<j<<" "<<i<<endl; } } } if(flag==0){ cout<<"0"<<endl; }