ปัญหา
เขียนโปรแกรมเพื่อแทนที่ 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