محاسبه فاکتوریل با حلقه و تابع بازگشتی در ++C

  • آخرین بروزرسانی در جمعه 08 می 2020

    Average rating 5 / 5. Vote count: 1

در این مثال آموزشی کد محاسبه فاکتوریل یک عدد را با استفاده از حلقه تکرار (for) و همچنین به روش تابع بازگشتی در زبان برنامه نویسی ++C خواهید آموخت.

پیش از این که کدنویسی این برنامه را توضیح دهیم، بهتر است ابتدا با تعریف فاکتوریل آشنا شویم.

فاکتوریل عدد صحیح (integer) و مثبت n برابر است با 1*2*3*…n. در ادامه کد برنامه محاسبه فاکتوریل یک عدد را در زبان برنامه نویسی ++C و با استفاده از حلقه تکرار و تابع بازگشتی می بینید.

برای این که بتوانید این مثال را درست متوجه شوید، بهتر است با حلقه های تکرار در زبان برنامه نویسی ++C آشنا باشید.

به ازای هر عدد مثبت به نام n، فاکتوریل به صورت زیر محاسبه می شود.

factorial = 1*2*3...*n

فاکتوریل عدد منفی قابل محاسبه نیست و فاکتوریل 0 برابر 1 است.

برنامه محاسبه فاکتوریل عدد در ++C

با استفاده از تابع بازگشتی

در این روش، یک تابع جداگانه (factorial) برای محاسبه فاکتوریل تعریف می شود که در آن هر بار تابع خود را دوباره فراخوانی می کند و به همین دلیل به آن تابع بازگشتی می گویند؛ به خط 21 در کد زیر توجه کنید.

#include<iostream>
using namespace std;

int factorial(int n);

int main()
{
    int n;

    cout << "Enter a positive integer: ";
    cin >> n;

    cout << "Factorial of " << n << " = " << factorial(n);

    return 0;
}

int factorial(int n)
{
    if(n > 1)
        return n * factorial(n - 1);
    else
        return 1;
}

خروجی

Enter a positive integer: 12
Factorial of 12 = 479001600

بدون استفاده از تابع بازگشتی

#include <iostream>
using namespace std;

int main()
{
    unsigned int n;
    unsigned long long factorial = 1;

    cout << "Enter a positive integer: ";
    cin >> n;

    for(int i = 1; i <=n; ++i)
    {
        factorial *= i;
    }

    cout << "Factorial of " << n << " = " << factorial;    
    return 0;
}

خروجی

Enter a positive integer: 12
Factorial of 12 = 479001600

در اینجا متغیر factorial از نوع unsigned long long است.unsignedبه این دلیل که فاکتوریل یک عدد همیشه مثبت است و long long به این دلیل که ممکن است فاکتوریل یک عدد، عدد بزرگی شود.

برای دنبال کردن نوشته های کاپ کد به کانال تلگرامی آن (cupcode_ir@) بپیوندید!

دیدگاه خود را بیان کنید

@