คุณต้องใช้การเรียกซ้ำเพื่อแก้ปัญหาเหล่านี้
เป็นไปได้ที่จะแก้ปัญหาพวกเขาอย่างไม่กลับบ้านและคุณอาจถูกล่อลวงให้ใช้เครื่องมือที่คุณเข้าใจอยู่แล้ว อย่างไรก็ตามการเอาชนะจุดประสงค์ของแบบฝึกหัดนี้ซึ่งจะทำให้รู้สึกสบายใจขึ้นโดยใช้การเรียกซ้ำ
สำหรับแบบฝึกหัดเหล่านี้โดยไม่ต้องใช้รหัสใด ๆ คุณคาดว่าจะระบุสิ่งต่อไปนี้:
เริ่มต้นปัญหาแต่ละครั้งโดยการทำความเข้าใจปัญหาและเกิดอินพุตและเอาต์พุตตัวอย่าง ในการฝึกซ้อมบางครั้งเราได้ให้อินพุตตัวอย่างและเอาต์พุตเพื่อความสะดวกของคุณ
เขียนฟังก์ชั่นการเรียกซ้ำที่นับจำนวนแกะกระโดดข้ามรั้ว โปรแกรมของคุณควรใช้ตัวเลขเป็นอินพุต หมายเลขนั้นควรเป็นจำนวนแกะที่คุณมี ฟังก์ชั่นควรแสดงหมายเลขพร้อมกับข้อความ "แกะตัวอื่นกระโดดข้ามรั้ว" จนกว่าจะไม่มีแกะอยู่อีกต่อไป
เขียนฟังก์ชั่นที่เรียกว่า PowerCalculator () ที่ใช้พารามิเตอร์สองตัวคือจำนวนเต็มเป็นฐานและจำนวนเต็มอื่นเป็นเลขชี้กำลัง ฟังก์ชั่นส่งคืนค่าของฐานที่เพิ่มขึ้นสู่พลังของเลขชี้กำลัง ใช้เพียงเลขชี้กำลังมากกว่าหรือเท่ากับ 0 (ตัวเลขบวก)
-PowerCalculator (10,2) ควรส่งคืน 100 -powerCalculator (10, -2) ควรส่งคืนเลขชี้กำลังควรเป็น> = 0
เขียนฟังก์ชั่นที่ย้อนกลับสตริง ใช้สตริงเป็นอินพุตย้อนกลับสตริงและส่งคืนสตริงใหม่
คำนวณจำนวนสามเหลี่ยมที่ N ตัวเลขสามเหลี่ยมนับจำนวนวัตถุที่สามารถสร้างรูปสามเหลี่ยมด้านเท่า หมายเลขสามเหลี่ยมที่ N คือจำนวนจุดที่ประกอบไปด้วยสามเหลี่ยมที่มีจุด N ที่ด้านข้างและเท่ากับผลรวมของตัวเลขธรรมชาติ N จาก 1 ถึง N นี่คือลำดับตัวเลขสามเหลี่ยม: 1, 3, 6, 10, 15, 21, 28, 36, 45
เขียนฟังก์ชั่นแบบเรียกซ้ำที่แยกสตริงตามตัวคั่น (คล้ายกับ string.prototype.split) อย่าใช้ฟังก์ชั่นแยกของ JS Array เพื่อแก้ปัญหานี้
เขียนฟังก์ชั่นแบบเรียกซ้ำที่พิมพ์ลำดับ Fibonacci ของหมายเลขที่กำหนด ลำดับ Fibonacci เป็นชุดของตัวเลขที่แต่ละหมายเลขคือผลรวมของตัวเลขก่อนหน้า 2 ตัว ตัวอย่างเช่นหมายเลข Fibonacci ที่ 7 ในลำดับ Fibonacci คือ 13 ลำดับจะดูดังนี้: 1, 1, 2, 3, 5, 8, 13
เขียนฟังก์ชั่นการเรียกซ้ำที่พบแฟคทอเรียลของหมายเลขที่กำหนด แฟคทอเรียลของตัวเลขสามารถพบได้โดยการคูณหมายเลขนั้นด้วยแต่ละหมายเลขระหว่างตัวเองและ 1 ตัวอย่างเช่นแฟคทอเรียลของ 5 คือ 5 * 4 * 3 * 2 * 1 = 120
คุณได้เข้าเขาวงกตและต้องการหาทางออกจากมัน มีเส้นทางที่เป็นไปได้มากกว่าหนึ่งเส้นทางผ่านเขาวงกตไปยังจุดทางออกเดียว เขียนฟังก์ชั่นการเรียกซ้ำที่จะช่วยให้คุณค้นหาเส้นทางที่เป็นไปได้ผ่านเขาวงกต
เขาวงกตนั้นแสดงเป็นเมทริกซ์ N*M จุดเริ่มต้นคือมุมซ้ายบนและทางออกจะถูกระบุโดย e เพื่อความเรียบง่ายให้ใช้มุมล่างขวาของเขาวงกตเป็นทางออก คุณไม่สามารถออกไปข้างนอกขอบเขตของเขาวงกตได้ เขาวงกตมีข้อความที่ถูกบล็อกและคุณไม่สามารถผ่านพวกเขาได้ ข้อความที่ถูกบล็อกเหล่านี้จะถูกระบุโดย * ผ่านเซลล์ที่ถูกบล็อกและผ่านแม้ว่าเซลล์ที่คุณผ่านไปแล้วก่อนหน้านี้ถูกห้าม
สำหรับเขาวงกตขนาดใหญ่ในการฝึกซ้อมเส้นทางที่เป็นไปได้
ใช้เขาวงกตขนาดใหญ่ด้านบนและปรับเปลี่ยนวิธีแก้ปัญหาของคุณเพื่อหาเส้นทางการออกที่เป็นไปได้ทั้งหมดผ่านเขาวงกต ในการค้นหาเส้นทางการออกที่เป็นไปได้ทั้งหมดผ่านเขาวงกตลองคิดดูว่าคุณสามารถย้ายสถานที่ได้กี่แห่งในแต่ละเทิร์น อาจขึ้นลงซ้ายหรือขวา?
ขอให้สังเกตว่าเขาวงกตนี้มีเส้นทางออก 3 เส้นทาง ฟังก์ชั่นการเรียกซ้ำของคุณควรพิมพ์ทั้งสามเส้นทางด้วยทิศทางที่เหมาะสม ตัวอย่างเช่นเมื่อได้รับเขาวงกตด้านบนโปรแกรมควรส่งออกสิ่งต่อไปนี้:
แอนนาแกรมเป็นคำหรือวลีใด ๆ ที่ใช้ตัวอักษรของคำหรือวลีที่ได้รับ ("หัวเรื่อง") ในคำสั่งอื่นที่จัดเรียงใหม่ เขียนฟังก์ชั่นที่สร้างรายการแอนนาแกรมโดยแสดงรายการการจัดเรียงใหม่ทั้งหมดของคำที่กำหนด ตัวอย่างเช่นหากผู้ใช้ประเภท "ตะวันออก" โปรแกรมควรแสดงรายการการเรียงสับเปลี่ยนทั้งหมด 24 รายการรวมถึง "Eats", "Etas", "ชา" และไม่ใช่คำเช่น "tsae"
คำแนะนำ: สำหรับอัลกอริทึมของคุณคุณอาจต้องการคิดถึงคำนำหน้าและใช้สิ่งนั้นเพื่อสร้างคำใหม่ ตัวอย่างเช่นให้ "ตะวันออก", ใช้ "e" เป็นคำนำหน้าและวางไว้หน้าการเรียงสับเปลี่ยนทั้ง 6 ของ "AST" - "AST", "ATS", "SAT", "Sta", "TAS" และ "TSA" สิ่งนี้จะทำให้คำว่า "ตะวันออก", "กิน", "esat", "esta", "etas" และ "etsa" ดำเนินการต่อไปด้วยวิธีนี้จนกว่าคุณจะพบแอนนาแกรมทั้งหมดสำหรับ "ตะวันออก" จากนั้นคุณสามารถใช้ "A" เป็นคำนำหน้าและเปลี่ยนคำที่เหลือ "EST" สำหรับ "ตะวันออก" ควรมี 24 คำ
เขียนฟังก์ชั่นการเรียกซ้ำที่พิมพ์วัตถุแผนภูมิองค์กรในการฝึกซ้อม ผลลัพธ์ของคุณควรแสดงในการเจาะด้วยการเยื้องที่เหมาะสมเพื่อแสดงลำดับชั้น
เขียนฟังก์ชั่นแบบเรียกซ้ำที่พิมพ์การแสดงไบนารีของหมายเลขที่กำหนด ตัวอย่างเช่นโปรแกรมควรใช้ 3 เป็นอินพุตและพิมพ์ 11 เป็นเอาต์พุตหรือ 25 เป็นอินพุตและพิมพ์ 11001 เป็นเอาต์พุต โปรดทราบว่าการเป็นตัวแทนไบนารีของ 0 ควรเป็น 0