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

โปรแกรม Python พิมพ์ชุดตัวเลขโดยไม่ใช้ลูป (Recursion)


ในบทความนี้ เราจะเรียนรู้วิธีแก้ปัญหาตามข้อความปัญหาที่กำหนดด้านล่าง −

ข้อความของปัญหา − กำหนดตัวเลขสองจำนวน N และ K ปัญหาของเราคือลบ K จาก N จนกว่า N จะมากกว่าศูนย์ (0) เมื่อ N กลายเป็นติดลบหรือศูนย์ เราจึงเริ่มบวก K เข้าไปจนกว่าตัวเลขจะกลายเป็น N ต้นฉบับ

ตัวอย่าง

N = 10, K = 4
Output: 10 6 2 -2 2 6 10

อัลกอริทึม

1. เรียกฟังก์ชันซ้ำจนกว่า N จะมากกว่าศูนย์ (ในแต่ละการเรียก ลบ K จาก N)
2. เมื่อตัวเลขกลายเป็นติดลบหรือศูนย์ เริ่มบวก K ในแต่ละการเรียกจนกว่าตัวเลขจะกลายเป็นตัวเลขต้นฉบับ
3. ใช้ฟังก์ชันเดียวสำหรับการบวกและลบ แต่ใช้ตัวแปรแบบ Boolean flag เพื่อสลับระหว่างการบวกหรือลบ

ตอนนี้มาสังเกตการนำไปใช้งานใน Python

ตัวอย่าง

def PrintNumber(N, Original, K, flag):
    # พิมพ์ตัวเลข
    print(N, end=" ")
    # ถ้าตัวเลขกลายเป็นติดลบ
    if (N <= 0):
        if flag == 0:
            flag = 1
        else:
            flag = 0
    if (N == Original and (not flag)):
        return
    # ถ้า flag เป็นจริง (ลบ)
    if flag == True:
        PrintNumber(N - K, Original, K, flag)
        return
    # ถ้า flag เป็นเท็จ (บวก)
    if not flag:
        PrintNumber(N + K, Original, K, flag)
        return

N = 10
K = 4
PrintNumber(N, N, K, True)

ผลลัพธ์

10 6 2 -2 2 6 10

ตัวแปรทั้งหมดถูกประกาศในเนมสเปซส่วนกลาง ตามที่แสดงในภาพด้านล่าง −

โปรแกรม Python พิมพ์ชุดตัวเลขโดยไม่ใช้ลูป (Recursion)

สรุป

ในบทความนี้ เราได้เรียนรู้ศัพท์สำหรับการพิมพ์ชุดตัวเลขโดยไม่ใช้โครงสร้างลูปใดๆ ใน Python 3.x หรือเวอร์ชันก่อนหน้า