小Z家的门牌号

匿名 (未验证) 提交于 2019-12-03 00:05:01

小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; }

 

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