Hướng dẫn giải của F09: Nhân kiểu mới
Chỉ dùng lời giải này khi không có ý tưởng, và đừng copy-paste code từ lời giải này. Hãy tôn trọng người ra đề và người viết lời giải.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.
Hướng dẫn giải
Phép nhân kiểu mới của bạn An: lấy từng chữ số của A nhân với từng chữ số của B rồi cộng tất cả các tích lại. Cần tính kết quả của phép nhân này.
Cách làm
Nhận xét: tổng của tất cả các tích chữ số bằng (tổng các chữ số của A) nhân với (tổng các chữ số của B). Vì vậy ta chỉ cần tính tổng chữ số của A, tổng chữ số của B rồi nhân hai kết quả lại với nhau. Ví dụ 123 có tổng chữ số là 6, 45 có tổng chữ số là 9, nên kết quả là 6*9 = 54.
#include <bits/stdc++.h>
using namespace std;
// Tính tổng các chữ số của số x
long long tong_chu_so(long long x) {
long long s = 0;
while (x > 0) {
s += x % 10;
x = x / 10;
}
return s;
}
int main() {
long long a, b;
cin >> a >> b;
// Mỗi chữ số của A nhân với mỗi chữ số của B rồi cộng lại,
// kết quả bằng (tổng chữ số của A) nhân (tổng chữ số của B)
long long ketqua = tong_chu_so(a) * tong_chu_so(b);
cout << ketqua << "\n";
return 0;
}
Bình luận