Giới thiệu
Trong hướng dẫn này, chúng ta sẽ tìm chữ số đầu tiên (chữ số hàng chục nghìn... hàng đơn vị ngoài cùng bên trái) của tích các phần tử trong mảng.
Các bước thực hiện
- Khởi tạo mảng.
- Tính tích các phần tử.
- Chia liên tiếp cho 10 cho đến khi kết quả < 10.
- Số còn lại chính là chữ số đầu tiên.
Mã nguồn ví dụ
#include <bits/stdc++.h>
using namespace std;
int productOfArrayDigits(int arr[], int n) {
int product = 1;
for (int i = 0; i < n; i++) product *= arr[i];
return product;
}
int firstDigitOfNumber(int n) {
while (n >= 10) n /= 10;
return n;
}
int main() {
int arr[] = {1, 2, 3, 4, 5, 6};
cout << firstDigitOfNumber(productOfArrayDigits(arr, 6)) << endl;
return 0;
}
Kết quả đầu ra
7
Giải thích
Tích = 1×2×3×4×5×6 = 720. Chữ số đầu tiên của 720 là 7.
Kết luận
Phương pháp đơn giản, hiệu quả cho mảng nhỏ. Với mảng lớn, tích có thể tràn số → cần dùng logarit hoặc BigInteger. Nếu bạn có thắc mắc, hãy để lại bình luận bên dưới.