题目大意:数根,找到一个数n(1<=n<=9)的第k个相同树根的数。
解题思路:求一个数的树根除了有O(n)的暴力模拟方法,还可以借助(num-1)%9+1公式O(1)时间求解。本题求第k个,直接num+(k-1)*9。因为一个数+9不会改变它的数根。暴力模拟会TLE
AC代码:
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include <iostream>
#include <algorithm>
#include <string>
#include <queue>
#include <map>
#include <stack>
#include <vector>
#include <utility>
using namespace std;
typedef long long ll;
ll k,i,goal;
int main() {
int T;
scanf("%d",&T);
while (T--) {
cin>>k>>goal;
cout<<(goal+(k-1)*9)<<endl;
}
return 0;
}