From 91491fa92ae64f36e8277849d0943d20b82093bc Mon Sep 17 00:00:00 2001 From: Jack Sangdahl Date: Thu, 20 Feb 2025 09:40:31 -0700 Subject: 2431. digit queries --- introductory_problems/digit_queries.cpp | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 introductory_problems/digit_queries.cpp (limited to 'introductory_problems/digit_queries.cpp') diff --git a/introductory_problems/digit_queries.cpp b/introductory_problems/digit_queries.cpp new file mode 100644 index 0000000..008d3f5 --- /dev/null +++ b/introductory_problems/digit_queries.cpp @@ -0,0 +1,32 @@ +// 2431. Digit Queries +#include +using namespace std; + +long long pow10(int x) { + long long res = 1; + for (int i = 0; i < x; i++) + res *= 10; + return res; +} + +int solve(long long n) { + if (n < 9) + return (int)n + 1; + int len = 1; + while (pow10(len - 1) * len * 9 < n) { + n -= 9 * pow10(len - 1) * len; + len++; + } + string s = to_string(pow10(len - 1) + n / len); + return (int)(s[n % len] - '0'); +} + +int main() { + static int q; + static long long k; + scanf("%d", &q); + for (int i = 0; i < q; i++) { + scanf("%lld", &k); + printf("%d\n", solve(k - 1)); + } +} -- cgit v1.2.3