من كتاب كيف تفكر كعالم كمبيوتر لغه جافا الفصل السادس العمليات المثمرة : مثال إضافي أخير
مثال إضافي أخير
ثاني أشهر مثال عن التوابع الرياضية المعرفة تعاودياً بعد factorial، هو fibonacci، المعرف بالشكل التالي:
fibonacci(0) = 1
fibonacci(1) = 1
fibonacci(n) = fibonacci(n − 1) + fibonacci(n − 2)
وبترجمته إلى Java يصبح:
كود:
public static int fibonacci (int n) {
if (n == 0 || n == 1) {
return 1;
} else {
return fibonacci (n-1) + fibonacci (n-2);
}
}
إذا حاولت تتبع مجرى التنفيذ هنا، حتى من أجل قيم صغيرة للمتحول n، فإن رأسك سينفجر. لكن حسب قفزة الثقة، إذا افترضنا أن الاستدعاءين التعاوديين (نعم، يمكنك عمل استدعاءين تعاوديين) يعملان بشكل صحيح، عندئذ سيكون واضحاً أننا سنح