ปัญหา
เขียนโปรแกรมเพื่อแทนที่ 0 ทั้งหมดด้วย 1 ในจำนวนเต็มที่กำหนด
เมื่อกำหนดจำนวนเต็มเป็นอินพุต จะต้องแทนที่ 0 ทั้งหมดในตัวเลขด้วย 1
วิธีแก้ปัญหา
ลองพิจารณาตัวอย่างด้านล่าง −
ที่นี่ อินพุตคือ 102410 และเอาต์พุตคือ 112411
อัลกอริทึม
อ้างถึงอัลกอริทึมที่ระบุด้านล่างเพื่อแทนที่ 0 ทั้งหมดเป็น 1 ในจำนวนเต็ม
ขั้นตอนที่ 1 - ป้อนจำนวนเต็มจากผู้ใช้
ขั้นตอนที่ 2 - เลื่อนผ่านตัวเลขจำนวนเต็มทีละหลัก
ขั้นตอนที่ 3 - หากพบ '0' ให้แทนที่ด้วย '1'
ขั้นตอนที่ 4 - พิมพ์จำนวนเต็ม
ตัวอย่าง
รับด้านล่างเป็นโปรแกรม C เพื่อแทนที่ 0 ทั้งหมดด้วย 1 ในจำนวนเต็มที่กำหนด -
#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;
} ผลลัพธ์
เมื่อโปรแกรมข้างต้นทำงาน มันจะสร้างผลลัพธ์ต่อไปนี้ -
Enter any number: 1056110010 After replacement the number is: 1156111111