Şimdi Ara

C'de büyük sayıların faktöriyelini hesaplama

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
3
Cevap
0
Favori
736
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhabalar,

    Ödev verildi bize faktöriyel hesaplayan program yapmamız için. int long veya double değerleri belli bir miktara kadar geçerli olduğundan 165'e kadar olan sayıların faktöriyelini hesaplamak zorlaşıyor. Ve dizi kullanacakmışız bunun için 300 elemanlı. Bulduğum örneklerde matematikteki alt alta çarpma gibi yapmamız söylenmiş ama ben tam anlayamadım. Yapabilecek veya yardım edebilecek biri var mıdır acaba? Teşekkürler...



  • #include<iostream> 
    using namespace std;

    // Maximum number of digits in output
    #define MAX 500

    int multiply(int x, int res[], int res_size);
    void factorial(int n);

    // This function finds factorial of large numbers and prints them
    void factorial(int n)
    {
    int res[MAX];

    // Initialize result
    res[0] = 1;
    int res_size = 1;

    // Apply simple factorial formula n! = 1 * 2 * 3 * 4...*n
    for (int x=2; x<=n; x++)
    res_size = multiply(x, res, res_size);

    cout << "Factorial of given number is \n";
    for (int i=res_size-1; i>=0; i--)
    cout << res[i];
    }

    // This function multiplies x with the number represented by res[].
    // res_size is size of res[] or number of digits in the number represented
    // by res[]. This function uses simple school mathematics for multiplication.
    // This function may value of res_size and returns the new value of res_size
    int multiply(int x, int res[], int res_size)
    {
    int carry = 0; // Initialize carry

    // One by one multiply n with individual digits of res[]
    for (int i=0; i<res_size; i++)
    {
    int prod = res[i] * x + carry;
    res[i] = prod % 10; // Store last digit of 'prod' in res[]
    carry = prod/10; // Put rest in carry
    }

    // Put carry in res and increase result size
    while (carry)
    {
    res[res_size] = carry%10;
    carry = carry/10;
    res_size++;
    }
    return res_size;
    }

    // Driver program
    int main()
    {
    factorial(100);
    return 0;
    }


    buyur kardeş istediğin sayının factoriyelini al




  • Kardeş sen hangi bölümde okuyon bu kodun c kodundan farkı ne ve iyi bak kodda ne kullanılmış :)))
    Sen dizi derken kurtlar vadisinden mi bahsediyon yoksa ben mi yanlış anladım



    < Bu mesaj bu kişi tarafından değiştirildi hannibal1903 -- 6 Mayıs 2015; 16:02:43 >
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.