门牌

小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 )

51 nod - 2641 小Z家的门牌号 (模拟)

纵然是瞬间 提交于 2019-12-02 07:06:12
小Z家住在一条短胡同里,这条胡同的门牌号从1开始顺序编号。 若其余各家的门牌号之和减去小Z家门牌号的两倍,恰好等于n,求小Z家的门牌号及总共有多少家。(有多解的情况下输出总家庭数最少的方案,题目肯定有解) 输入 一个正整数T(10<=T<=1000),表示一共有T组询问 接下来T行,每行一个整数n(0<n<100000) 输出 输出一共T行,每行两个整数a b(用空格隔开,表示小Z家的门牌号及总共有多少家,有多解的情况下输出总家庭数最少的方案) 数据范围 1 输入样例 5 15 90 63 46 3 输出样例 2 6 5 14 1 11 3 10 1 3 int main() { int t,n; cin>>t; while(t--) { cin>>n; for(int i=sqrt(n);;i++) { if( (( i*(i+1)/2)-n )%3 == 0 &&(( i*(i+1)/2-n )/3)>0 ) { cout<<( i*(i+1)/2-n )/3 <<" "<<i<<endl; break; } } } return 0; } 来源: https://www.cnblogs.com/Shallow-dream/p/11735834.html

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