CF 1926c
题意
给定一个 n ,询问从 1 到 n 的所有数字的数组和
分析
预处理出来 1 ~ n 的答案 O(1) 打表即可
代码
#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 10;
int s[N];
int c(int x)
{
int cnt = 0;
while(x)
{
cnt += x % 10;
x /= 10;
}
return cnt;
}
void init()
{
for(int i = 1 ; i < N ; i++)
{
s[i] = s[i - 1] + c(i);
}
return;
}
int main()
{
init();
int T;
scanf("%d" , &T);
int n;
while(T--)
{
scanf("%d" , &n);
printf("%d\n" , s[n]);
}
return 0;
}