一道细节满满的题
#include<iostream> using namespace std; int main() { int tt; cin >> tt; while (tt--) { int n; cin >> n; n--; int idx = 2;//B的初始为2 int a[2]{1,0}; int flag = 1; while (n) { if (idx <= n) n -= idx, a[flag] += idx++;//n-=idx 这个操作 妙 else { a[flag] += n,n = 0 ; break; } if (idx <= n) n -= idx, a[flag] += idx++;//连续相加2次 else { a[flag] += n,n = 0; break; } flag == 1?flag=0:flag=1;//比如B加完,换成A加 } cout << a[0] <<" " << a[1] << endl;//注意输出顺序 } }
这道题还是思路有问题
上面的代码是按下标来操作的,连续加两次
Code over!