biraz egzersiz ile sorun mu yaşıyorsunuz, Ben varsayalım:C++ 'da yinelemeli bir faktöriyel fonksiyonun izlenmesi?
#include <iostream>
using namespace std;
int factorialFinder(int x) {
if (x==1) {
return 1;
}else{
return x*factorialFinder(x-1);
}
}
int main()
{
cout << factorialFinder(5) << endl;
}
Bunu nasıl iz ki? Örneğin : sen benim mantığı izlerseniz
Put in 5 into the factorialFinder function.
if (5 == 1) (False, so skip)
returns 5 times factorialFinder(5-1)
this means returns 5 times factorialFinder(4)
this means go back to function
if (4 == 1) (False, so skip)
returns 4 times factorialFinder(4-1)
...etc.
Şimdi sorum
returns 4 times factorialFinder(4-1)
o 4 çıkmıyor veya ilk 5 * 4 çarpar çünkü 20 çıkmıyor benim son açıklamada ise.
Üzgünüm, bunu anlamakta zorlanıyorum ve neden bu işe yarıyor. Lütfen mantığımı bir şekilde kullanmayı açıklamaya çalışın. herhangi bir kod uygulaması Örneğin
çalışır nerede, sen adımları yazdırabilir nasıl çalıştığını derin anlamak için
Kendinizin '1' için çalışıp çalışmadığını sorun. 2 için mi? Herhangi bir "n" için çalışıyorsa, n + 1 için çalışır (şu an için taşmaları göz ardı eder. –
Bu, 24 döndürür. En dıştaki işlevin 5 * 24 = 120 değerini hesaplar ve –
döndürür. Belki kodunuzu makinenizden ayıklayabilirsiniz, daha kolay anlaşılır ... –