小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; }
来源:51CTO
作者:张哲瑞
链接:https://blog.csdn.net/weixin_41791402/article/details/100835513