ได้รับตัวเลข n ต้องแทนที่หลัก digit ด้วย replace
เช่น n=123, digit=2, replace=5 → ผลลัพธ์ 153
ตัวอย่าง
Input: n=983, digit=9, replace=6 Output: 683 Input: n=123, digit=5, replace=4 Output: 123 (ไม่มีหลัก 5)
แนวทาง
- ดึงหลักหน่วย (n % 10) ตรวจสอบเท่ากับ digit ที่ต้องการแทนที่หรือไม่
- ถ้าใช่: เพิ่ม replace * d เข้า result (d = ตำแหน่งหลัก 1, 10, 100...)
- ถ้าไม่ใช่: เก็บค่าเดิม rem * d
- d *= 10, n /= 10 ทำซ้ำจน n=0
อัลกอริทึม
Start
ฟังก์ชัน digitreplace(n, digit, replace):
res = 0, d = 1
while n != 0:
rem = n % 10
if rem == digit: res += replace * d
else: res += rem * d
d *= 10; n /= 10
print res
main(): n=983, digit=9, replace=7 เรียก digitreplace
Stop
โค้ดตัวอย่าง
#include <stdio.h>
int digitreplace(int n, int digit, int replace) {
int res = 0, d = 1, rem;
while (n) {
rem = n % 10;
if (rem == digit) res += replace * d;
else res += rem * d;
d *= 10; n /= 10;
}
printf("%d\n", res);
return 0;
}
int main() {
int n = 983, digit = 9, replace = 7;
digitreplace(n, digit, replace);
return 0;
}
ผลลัพธ์
783