注意:数据开大一点,我开到70000就过了
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<iostream>
#include<algorithm>
#define MAX 70000
#define INF 0x3f3f3f3f
typedef long long ll;
using namespace std;
ll num[MAX];
void Init() {
num[0] = 0;
for (int i = 1; i <= MAX; i++) {
num[i] = num[i - 1] + i;
}
}
int main(void) {
int t;
ll n;
scanf("%d", &t);
Init();
while (t--) {
scanf("%d", &n);
int l = 1;
int r = MAX;
int mid;
while (1) {
mid = (l + r) / 2;
if (num[mid] < n && num[mid + 1] >= n)
break;
if (num[mid + 1] < n)
l = mid + 1;
if (num[mid] >= n)
r = mid - 1;
}
int ans = n - num[mid];
ans %= 9;
if (ans == 0) {
printf("9\n");
}
else {
printf("%d\n", ans);
}
}
return 0;
}