ฉันถูกขอให้คำนวณนิพจน์รูทที่ซ้อนกันต่อไปนี้โดยใช้การเรียกซ้ำเท่านั้น
ฉันเขียนโค้ดด้านล่างที่ใช้งานได้ แต่พวกเขาอนุญาตให้เราใช้เพียงฟังก์ชั่นเดียวและ 1 อินพุตn
เพื่อวัตถุประสงค์และไม่ใช่ 2 อย่างที่ฉันใช้ ใครสามารถช่วยฉันแปลงรหัสนี้เป็นฟังก์ชั่นเดียวที่จะคำนวณการแสดงออก? ลาดเทใช้ห้องสมุดใด ๆ <math.h>
ยกเว้นจากฟังก์ชั่น
เอาต์พุตสำหรับ n = 10: 1.757932
double rec_sqrt_series(int n, int m) {
if (n <= 0)
return 0;
if (m > n)
return 0;
return sqrt(m + rec_sqrt_series(n, m + 1));
}
double helper(int n) {
return rec_sqrt_series(n, 1);
}
abort()
(จาก<stdlib.h>
) ไม่ส่งคืนอย่างเงียบ ๆ 0
double nested_root(unsigned n) { double x = 0.0; if (n > 0) { x = nested_root(0); for (unsigned i = n; i > 0; i--) { x = sqrt(i + x); } } return x; }
helper
?