題目:P4942 小凱的數字
小凱的數字
題目背景
NOIP2018 原創模擬題T1
NOIP DAY1 T1 or DAY 2 T1 難度
是否發現與NOIP2017 DAY1 T1 有異曲同工之妙
題目描述
小凱有一天突發奇想,寫下了一串數字:$\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,,mod,,9 = 5$
輸入格式
輸入格式:
第一行為數字 $Q$,表示小凱有 $Q$ 個問題
第 $2$ 到 $Q+1$ 行,每行兩個數字 $l,r$ 表示數字範圍
輸出格式
輸出格式:
對於每行的問題輸出一行,一個數字,表示小凱問題的回答
樣例 #1
樣例輸入 #1
2
2 5
8 12
樣例輸出 #1
5
5
樣例 #2
樣例輸入 #2
3
1 999
123 456
13579 24680
樣例輸出 #2
0
6
0
提示
樣例1解釋:$2345,,mod,,9 = 5$ $89101112,,mod,,9 = 5$
30% 資料滿足:$Q\leq10;l,r\leq100$
50% 資料滿足:$Q\leq100;l,r\leq10000$
70% 資料滿足:$Q\leq1000;l,r\leq10^6$
100%資料滿足:$Q\leq10000;0<l,r\leq10^{12}$ 且 $l\leq r$
原題連結
思路:
大佬的題解很好
https://www.luogu.com.cn/article/xt6ixoe9
方法一:
點選檢視程式碼
#include <bits/stdc++.h>
#define ios ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)
#define pii pair<int,int>
#define inf 0x3f3f3f3f
#define ll long long
#define el '\n'
using namespace std;
const int N = 1e5 + 5;
string str;
int n, m;
void solve()
{
cin >> n;
while (n--) {
ll l, r;
cin >> l >> r;
r %= 9;
l %= 9;
if (r < l) r += 9;
m = 0;
for (int i = l; i <= r; i++) {
m += i;
}
cout << m % 9 << el;
}
}
int main()
{
ios;
solve();
return 0;
}