题目描述:
我家住在一条短胡同里,这条胡同的门牌号从1开始顺序编号。
若其余各家的门牌号之和减去“ 我家门牌号的两倍 ”,恰好等于n,求我家的门牌号及总共有多少家。数据可能有多组解,本题只要输出最小的那组解。
输入格式:
一个正整数n。n<100000。
输出格式:
一行,包含两个正整数,分别是我家的门牌号及总共有多少家,中间用单个空格隔开。
样例输入:
100
样例输出:
12 16
时间限制: 1000ms
空间限制: 256MB
代码如下:
- #include
- using namespace std;
- int main(){
- int n,s,x;
- cin>>n;
- s=sqrt(6+2*n)-1;
- for(int i=s;;i++) {
- if((i*i+i-2*n)%6==0){
- x=(i*i+i-2*n)/6;
- if(x<=0){
- continue;
- }
- if(x>0){
- cout<
" "< - break;
- }
- }
- }
- return 0;
- }