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

เขียนโปรแกรมในภาษา Python เพื่อแทนที่ 0 ทั้งหมดด้วย 5 ในตัวเลขที่กำหนด


ให้จำนวนเต็ม N ภารกิจคือการแทนที่ 0 ทั้งหมดที่ปรากฏในตัวเลขด้วย '5' อย่างไรก็ตาม หมายเลขที่มี '0' นำหน้าไม่สามารถแทนที่ด้วย '5' เนื่องจากยังคงไม่เปลี่ยนแปลง ตัวอย่างเช่น

อินพุต-1

N = 1007

ผลผลิต

1557

คำอธิบาย − จำนวนที่กำหนดมีศูนย์ 2 ตัว ซึ่งเมื่อแทนที่ด้วย '5' ผลลัพธ์ที่ได้จะเป็น 1557

อินพุต-2

N = 00105

ผลผลิต

155

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

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

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

  • ป้อนตัวเลข N.

  • ฟังก์ชัน Integer convertToFive(int N) รับตัวเลขเป็นอินพุตและส่งกลับตัวเลขที่แก้ไขโดยแทนที่ 0 ทั้งหมดด้วย '5'

  • หากหลักสุดท้ายของตัวเลขคือ '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(covertToFive(14006))

ผลลัพธ์

การเรียกใช้โค้ดด้านบนจะสร้างผลลัพธ์เป็น

14556

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