小Z家的门牌号

我们两清 提交于 2019-11-29 15:40:21

小Z家住在一条短胡同里,这条胡同的门牌号从1开始顺序编号。

若其余各家的门牌号之和减去小Z家门牌号的两倍,恰好等于n,求小Z家的门牌号及总共有多少家。(有多解的情况下输出总家庭数最少的方案,题目肯定有解)

 收起

输入

一个正整数T(10<=T<=1000),表示一共有T组询问
接下来T行,每行一个整数n(0<n<100000)

输出

输出一共T行,每行两个整数a b(用空格隔开,表示小Z家的门牌号及总共有多少家,有多解的情况下输出总家庭数最少的方案)

输入样例

5
15
90
63
46
3

输出样例

2 6
5 14
1 11
3 10
1 3

 

#include <bits/stdc++.h>
using namespace std;

int main() { 
	
	int T;
	cin >> T;
	for(;T--;)
	{
		long long n;
		cin >> n;
		long long sum = 0;
		for(long long i = 1; ; i++)
		{
			sum += i;
			// cout << sum << endl;
			if(sum > n )
			{
				
				long long chazhi = sum - n;
				if(chazhi % 3 == 0)
				{
					cout << (long long)(chazhi/3) << " " << i << endl;
					break;
				}
			}
		}
	}
	return 0;
}

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!