Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

เขียนโปรแกรม Python แทนที่เลข 0 ด้วย 5 ในตัวเลขที่กำหนด


กำหนดจำนวนเต็ม N ให้แทนที่เลข 0 ทุกตัวที่ปรากฏในตัวเลขด้วย '5' อย่างไรก็ตาม เลข 0 นำหน้า (leading zeros) ไม่สามารถแทนที่ได้ เพราะจะถูกตัดทิ้ง ตัวอย่างเช่น

อินพุต-1 -

N = 1007

เอาต์พุต -

1557

คำอธิบาย - ตัวเลขที่กำหนดมี 0 อยู่ 2 ตัว เมื่อแทนที่ด้วย 5 จะได้ 1557

อินพุต-2 -

N = 00105

เอาต์พุต -

155

คำอธิบาย - เนื่องจากตัวเลขเริ่มต้นด้วย 0 นำหน้า ซึ่งจะถูกละเว้น และผลลัพธ์หลังแทนที่ 0 กลางด้วย 5 คือ 155

แนวทางแก้ปัญหา

เพื่อแทนที่ 0 ทั้งหมดในตัวเลขที่กำหนดด้วย '5' เราสามารถหาหลักสุดท้ายของตัวเลขได้ หากหลักสุดท้ายเป็น '0' ให้เปลี่ยนเป็น '5' และดึงหลักถัดไป อย่างไรก็ตาม 0 นำหน้าต้องถูกละเว้น ดังนั้นเราจะดึงหลักสุดท้ายก่อน แล้วเรียกฟังก์ชันซ้ำเพื่อดึงหลักอื่นๆ

  • รับค่าตัวเลข N

  • ฟังก์ชัน Integer convertToFive(int N) รับตัวเลขและคืนค่าตัวเลขที่แก้ไขแล้ว

  • ถ้าหลักสุดท้ายเป็น '0' ให้แทนที่ด้วย '5'

  • คืนค่าฟังก์ชันเวียนเกิดที่รับหลักถัดไปโดยการหาร 10 และคูณ 10

  • คืนค่าผลลัพธ์ที่ดึงหลักสุดท้ายมาบวกเข้าด้วยกัน

ตัวอย่าง

def convertToFive(number):
    number += calculateAddedValue(number)
    return number

def calculateValue(number):
    result = 0
    placeValu = 1
    if (number == 0):
        result += (5 * placeValue)
    while (number > 0):
        if (number % 10 == 0):
            result += (5 * placeValue)
        number //= 10
        placeValue *= 10
    return result

print(convertToFive(14006))

ผลลัพธ์

การรันโค้ดจะได้ผลลัพธ์ดังนี้

14556

เนื่องจาก มี 0 อยู่ 2 ตัว ในตัวเลขที่กำหนด หลังจากแทนที่ตัวเลข 14006 จะกลายเป็น 14556