每个数字都有个数位和,就是把数字的每一位相加直到数位和是一个个位数。
然后题目就要你求第K个数位和为X的数字是多少。
写一些数字出来就很容易发现规律了
可以看出每一竖列的数位和是相等的,然后就找到规律是9 * (k - 1) + x,注意数据范围是1e12,是long long,然后就这么多,就可以直接写程序了。
代码如下
#include<iostream>
#include<cstdio>
#include<queue>
using namespace std;
int main()
{
int q;
scanf("%d",&q);
while(q--)
{
long long a,b;
scanf("%lld %lld",&a,&b);
a--;
printf("%lld\n",9 * a + b);
}
return 0;
}
标签:include,数字,int,CodeForces,long,1107B,数位,root,lld From: https://blog.51cto.com/u_16131191/6356092