小Z家的门牌号
小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 )