Cho số nguyên N, thay thế mọi chữ số 0 bằng 5. Các số 0 dẫn đầu (leading zeros) bị bỏ qua vì không ảnh hưởng giá trị số. Ví dụ:
Đầu vào 1: N = 1007 → Đầu ra: 1557.
Đầu vào 2: N = 00105 (thực tế là 105) → Đầu ra: 155 (0 giữa thành 5, 0 dẫn đầu bị bỏ).
Phương pháp: Đệ quy
Tách chữ số cuối (N % 10). Nếu là 0 thì thay bằng 5. Gọi đệ quy cho N/10, nhân kết quả đệ quy với 10 và cộng chữ số đã xử lý. Trường hợp cơ sở: N == 0 trả về 0.
Ví dụ mã nguồn
#include <bits/stdc++.h>
using namespace std;
int convertToFive(int N) {
if (N == 0) return 0;
int last = N % 10;
if (last == 0) last = 5;
return convertToFive(N / 10) * 10 + last;
}
int main() {
int N = 14006;
cout << convertToFive(N) << endl; // 14556
return 0;
}
Kết quả
14556
Số 14006 sau khi thay 0 thành 5 trở thành 14556.