Vấn đề
Viết chương trình thay thế tất cả các số không (0) bằng 1 trong một số nguyên cho trước.
Cho một số nguyên làm đầu vào, tất cả các chữ số 0 trong số phải được thay thế bằng 1.
Giải pháp
Hãy xem xét một ví dụ được đưa ra bên dưới -
Ở đây, đầu vào là 102410 và đầu ra là 112411.
Thuật toán
Tham khảo thuật toán đưa ra bên dưới để thay thế tất cả các số 0 thành 1 trong một số nguyên.
Bước 1 - Nhập số nguyên từ người dùng.
Bước 2 - Duyệt chữ số nguyên sang chữ số.
Bước 3 - Nếu gặp phải '0', hãy thay thế nó bằng '1'.
Bước 4 - In số nguyên.
Ví dụ
Dưới đây là chương trình C để thay thế tất cả các số 0 bằng 1 trong một số nguyên cho trước -
#include<stdio.h>
int replace(long int number){
if (number == 0)
return 0;
//check last digit and change it if needed
int digit = number % 10;
if (digit == 0)
digit = 1;
// Convert remaining digits and append to its last digit
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("\nEnter any number : ");
scanf("%d", &number);
printf("\nAfter replacement the number is : %dn", Convert(number));
return 0;
} Đầu ra
Khi chương trình trên được thực thi, nó tạo ra kết quả sau -
Enter any number: 1056110010 After replacement the number is: 1156111111