DIGIT5 - Số chữ số 5
Xem dạng PDF
Gửi bài giải
Điểm:
1,00 (OI)
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, Pascal, Perl, PHP, PyPy, Python, Ruby, Rust, Scratch, Swift
Cho hai số nguyên dương ~M, N~. Hãy cho biết để biểu diễn các số trong phạm vi từ ~M~ đến ~N~ trong hệ đếm thập phân ta cần sử dụng bao nhiêu chữ số 5.
Input
- Một dòng duy nhất chứa hai số nguyên dương ~M, N~
Giới hạn:
- ~(1 ≤ M≤N≤10^9~
- ~N - M≤10^5)~
Output
- Một số nguyên duy nhất là số chữ số
5được dùng để biểu diễn các số trong phạm vi từ ~M~ đến ~N~.
Sample
Input #1
1 20
Output #1
2
Input #2
50 60
Output #2
11
Problem source: Chuyên Sơn La Online Judge
Bình luận
include <bits/stdc++.h>
using namespace std; using ll = long long; int main() {
}
include <bits/stdc++.h>
using namespace std;
using ll = long long;
int L, R; int digits[20]; long long memo[20][2][20];
// Đếm số chữ số 5 trong các số từ 0 đến số được biểu diễn trong digits[0..pos] // tight = 1 nếu số đang xét chưa vượt giới hạn digits, cnt5 = số chữ số 5 đã xuất hiện long long dp(int pos, int tight, int cnt5) { if(pos == -1) return cnt5; if(memo[pos][tight][cnt5] != -1) return memo[pos][tight][cnt5];
}
// Hàm tính số chữ số 5 từ 0 đến x long long count5(int x) { int pos = 0; while(x) { digits[pos++] = x % 10; x /= 10; } memset(memo, -1, sizeof(memo)); return dp(pos-1, 1, 0); }
int main() { ios::syncwithstdio(false); cin.tie(nullptr);
}