ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

题解:洛谷 P4942 小凯的数字

2026/8/2 14:08:03 拓冰建站 浏览量
题解:洛谷 P4942 小凯的数字

【题目来源】

洛谷:P4942 小凯的数字 - 洛谷

【题目描述】

小凯有一天突发奇想,写下了一串数字:\(\overline{l(l+1)(l+2)...(r-1)r}\)

例如:\(l=2,r=5\) 时,数字为:\(2345\)

\(l=8,r=12\) 时数字为:\(89101112\)

小凯很喜欢数字 \(9\),所以他想问你他写下的数字除以 \(9\) 的余数是多少?

例如:\(l=2,r=5\) 时,\(2345\bmod9 = 5\)

【输入】

第一行为数字 \(Q\),表示小凯有 \(Q\) 个问题。

\(2\)\(Q+1\) 行,每行两个数字 \(l,r\) 表示数字范围。

【输出】

对于每行的问题输出一行,一个数字,表示小凯问题的回答。

【输入样例】

2
2 5
8 12

【输出样例】

5
5

【算法标签】

《洛谷 P4942 小凯的数字》 #模拟# #数学# #高精度# #逆元#

【代码详解】

#include <bits/stdc++.h>
using namespace std;#define int long long  // 将int定义为long long类型,避免大数溢出int q, l, r, a, b, ans;  // q: 查询次数,l,r: 区间端点,a,b: 临时变量,ans: 结果signed main()  // 使用signed main()替代int main(),因为int被重定义为long long
{cin >> q;  // 读入查询次数while (q--)  // 处理每个查询{cin >> l >> r;  // 读入区间[l, r]ans = 0;  // 初始化结果// 计算区间内所有数字的数位和模9的结果// 利用数论性质:一个数的数位和模9等于该数本身模9// 区间[l, r]内所有数字的和模9等于这些数字模9的和再模9for (int i = l % 9; i <= r % 9 + 9; i++){ans += i;  // 累加模9的余数}// 输出最终结果模9cout << ans % 9 << endl;}return 0;
}

【运行结果】

2
2 5
5
8 12
5