สร้างลิสต์ ดัชนีเริ่มต้น 0 ตำแหน่งตัวที่ 3 แรกคือ 2 ต้องวนจนลิสต์ว่าง และทุกครั้งต้องหาดัชนีของตัวที่ 3 ถัดไป พิมพ์ค่าและลดความยาวลิสต์
ตัวอย่าง
A:[10,20,30,40] OUTPUT: 30 20 40 10
คำอธิบาย
ตัวที่ 3 แรกคือ 30 แล้วนับจาก 40 หาตัวที่ 3 ถัดไปคือ 20 แล้วเริ่มจาก 40 อีกครั้ง ตัวที่ 3 คือ 40 เอง และสุดท้ายพิมพ์ 10
อัลกอริทึม
ขั้นตอนที่ 1: ดัชนีลิสต์เริ่มจาก 0 ตัวที่ 3 อยู่ตำแหน่ง 2
ตัวแปร p=2, ดัชนีเริ่มต้น id=0
ขั้นตอนที่ 2: หาความยาวลิสต์
listlen = len(LST)
ขั้นตอนที่ 3: วนจนลิสต์ว่าง ทุกครั้งหาดัชนีตัวที่ 3 ถัดไป
While(listlen > 0)
Id = (p + id) % listlen
A = LST.pop(id) // ลบและพิมพ์สมาชิกที่ต้องการ
Listlen -= 1
End while
โค้ดตัวอย่าง
# ลบทุกตัวที่ 3 จนลิสต์ว่าง
def removenumber(no):
# ลิสต์เริ่มดัชนี 0
p = 3 - 1
id = 0
lenoflist = len(no)
# หยุดเมื่อลิสต์ว่าง
while lenoflist > 0:
id = (p + id) % lenoflist
# ลบและพิมพ์สมาชิกที่ต้องการ
print(no.pop(id))
lenoflist -= 1
# โค้ดหลัก
A = list()
n = int(input("ป้อนขนาดของอาร์เรย์ ::"))
print("ป้อนตัวเลขจำนวนเต็ม")
for i in range(int(n)):
p = int(input("n="))
A.append(int(p))
print("หลังลบตัวที่ 3 ทีละตัว ลิสต์คือ")
removenumber(A)
ผลลัพธ์
ป้อนขนาดของอาร์เรย์ ::9 ป้อนตัวเลข n=10 n=20 n=30 n=40 n=50 n=60 n=70 n=80 n=90 หลังลบตัวที่ 3 ทีละตัว ลิสต์คือ 30 60 90 40 80 50 20 70 10