Vấn đề
Viết chương trình thay thế tất cả số 0 bằng 1 trong số nguyên cho trước.
Cho số nguyên đầu vào, tất cả chữ số 0 phải thay bằng 1.
Giải pháp
Ví dụ: đầu vào 102410 -> đầu ra 112411.
Thuật toán
Thuật toán thay 0 bằng 1 trong số nguyên:
Bước 1 - Nhập số nguyên từ người dùng.
Bước 2 - Duyệt số nguyên chữ số bởi chữ số.
Bước 3 - Nếu gặp '0', thay bằng '1'.
Bước 4 - In số nguyên kết quả.
Ví dụ
Chương trình C thay 0 bằng 1:
#include <stdio.h>
int replace(long int number){
if (number == 0)
return 0;
// Kiem tra chu so cuoi va thay doi neu can
int digit = number % 10;
if (digit == 0)
digit = 1;
// Chuyen doi cac chu so con lai va noi vao chu so cuoi
return replace(number/10) * 10 + digit;
}
int Convert(long int number){
if (number == 0)
return 1;
else
return replace(number);
}
int main(){
long int number;
printf("\nNhap so bat ky: ");
scanf("%ld", &number);
printf("\nSau khi thay the so la: %ld\n", Convert(number));
return 0;
}
Đầu ra
Kết quả chạy chương trình:
Nhap so: 1056110010 Sau khi thay the: 1156111111