2016-04-11 18 views
0

Lütfen, eğer birisi bana yardım ederse, son derece müteşekkir olurum! İşte Faktoriyel - "Çalışma Yapısı"

faktöriyele için basit bir koddur: my quuestion biz olsun 5 ila (fe doğru çarpınımını olsun başarmak nasıl olduğunu

using System; 
namespace CalculatorApplication 
{ 
    class NumberManipulator 
    { 
     public int factorial(int num) 
     { 
     /* local variable declaration */ 
    int result; 
    if (num == 1) 
    { 
     return 1; 
    } 
    else 
    { 
     result = factorial(num - 1) * num; 
     return result; 
    } 
    } 

    static void Main(string[] args) 
    { 
    NumberManipulator n = new NumberManipulator(); 
    //calling the factorial method 
    Console.WriteLine("Factorial of 6 is : {0}", n.factorial(5)); 

    Console.ReadLine(); 
    } 
} 
} 

OK 5 * 4 * 3 * 2 * 1 Neden Don. 't biz 5 * 4 = 20 veya almak:

5 * 4 * 4 * 3 * 3 * 2 * 2 * 1 * 1 * 1 hwo biz "kaçırma" do buraya çifti 4 * 3 - İşlemcinin bu çiftin nasıl kaçırılacağını bildiği bir başka deyişle, kısaca, işlemci REMEMBERS sayılarının nasıl ve nerede çoğaltmamız gerektiği (5, 4, 3, 2) 1) LOOP

PYS OLMAKSIZIN. Ne olduğunu açık bir şekilde anlayabiliyordum, o zaman bir çeşit noraml LOOP'du, ama ben sadece özüm olarak “yeniden yazıldığını” anlayamıyorum ... lütfen, eğer birisi işlemcinin kafasında neler olduğunu adım adım açıklığa kavuştursa ... ÇOK ÇOK TEŞEKKÜRLER !!! - Bu kolay bir soru olduğundan emin değilim !!

cevap

0

İlk olarak: Bu hata, yerel bir değişken hatası alırsınız public int factorial(int num) yönteminde hata verecektir.

İkincisi: Kullanıcı girdisi dinamik olduğundan, döngü kullanmadan bir faktöriyel elde edemezsiniz. Yinelemeyi yapmak isterseniz, yineleme boyunca yinelemek için döngü kullanmaya devam edersiniz.

Dolayısıyla işlemci bazı programlama dilleri örneğin HARİÇ soldan sağa, yukarıdan aşağıya doğru kodunu okur C#, bu (sermayenin M ile) Main() yönteminden okumaya başlayacaktır. Bu nedenle, public string main() yöntemini oluşturursanız, bu size hata vermez, ancak yine de Main()'dan okunmaya başlayacaktır.

+0

Teşekkürler, bu konuya geri dönüyorum,% 100 açık değil ... –