فاکتوریل در برنامه‌نویسی c چیست؟

فاکتوریل در برنامه‌نویسی c
آنچه در این مطلب می‌خوانید

آشنایی با فاکتوریل

در این مطلب می‌خواهیم به مفهوم فاکتوریل در برنامه‌نویسی c بپردازیم. ابتدا مفهوم خود فاکتوریل را مرور می‌کنیم.
همان طور که می‌دانید در ریاضیات فاکتوریل یک عدد، حاصل ضرب تمام اعداد صحیح نزولی مثبت از آن عدد تا عدد یک است. فاکتوریل nبا n! نشان داده می شود.

به عنوان مثال :
۵! = ۵ * ۴ * ۳ * ۲ * ۱ = ۱۲۰
۳! = ۳ * ۲ * ۱ = ۶

در اینجا، !۵ به عنوان “۵ فاکتوریل” تلفظ می شود، به آن ۵ ‘bang’ یا ۵ ‘shriek’ نیز می گویند.

به طور کلی فاکتوریل عدد طبیعی n به صورت زیر تعریف می‌شود :
n! = n * ( n – ۱ ) * ( n – ۲ ) * …. * ۲ * ۱

فاکتوریل معمولاً در ترکیبات و جایگشت ها در ریاضیات استفاده می شود.

توجه داشته باشید که :

  •  اعداد منفی فاکتوریل ندارند.
  •  یه صورت قراردادی فاکتوریل عدد صفر و یک برابر است با ۱٫ ۰! = ۱ ۱! = ۱

روش‌های نوشتن برنامه فاکتوریل به زبان c

راه‌های زیادی برای نوشتن برنامه فاکتوریل به زبان c وجود دارد، در ادامه ۲ روش برای این کار معرفی می‌شود :

  • برنامه فاکتوریل با استفاده از حلقه یا تابع غیر بازگشتی
  • برنامه فاکتوریل با استفاده از تابع بازگشتی

برنامه فاکتوریل در برنامه‌نویسی c با استفاده از حلقه

با استفاده از حلقه‌ی for برنامه بعد از دریافت عدد n آن را وارد حلقه می‌کند و تا زمانی که شمارنده حلقه به عدد ورودی یعنی n برسد برنامه اجرا خواهد شد سپس بعد از رسیدن شمارنده به n فاکتوریل n را محاسبه کرده و چاپ می‌کند.

برنامه فاکتوریل در برنامه‌نویسی c با استفاده از حلقه:

#include<stdio.h>

int main(){int i,fact=1,number;printf(“Enter a number: “);scanf(“%d”,&number);for(i=1;i<=number;i++){fact=fact*i;}printf(“Factorial of %d is: %d”,number,fact);return 0;}

 خروجی این برنامه با عدد ورودی n = 5 به شکل زیر خواهد بود: 

Enter a number : 5

Factorial of 5 is : 120

برنامه فاکتوریل در برنامه‌نویسی c با استفاده از تابع بازگشتی

تابع بازگشتی تابعی است که از درون خودش فراخوانی می‌شود. به عبارت دیگر در زبان برنامه‌نویسی، اگر برنامه اجازه‌ی فراخوانی یک تابع را درون خودش بدهد یک فراخوانی بازگشتی از تابع اتفاق رخ داده است.

آموزش برنامه‌نویسی به زبان C++‎
آموزش برنامه‌نویسی به زبان C++‎
۱,۴۹۹,۰۰۰ ۸۹۹,۴۰۰ تومان
۴۰%

 زبان برنامه‌نویسی c از فراخوانی تابع بازگشتی پشتیبانی می‌‌کند البته نکته‌ای که برنامه‌نویس‌ها و توسعه‌گرها باید به آن توجه کنند این است که شرایط خروج از برنامه را در یک تابع بازگشتی مشخص کنند در غیر این صورت برنامه وارد یک حلقه بی‌نهایت خواهد شد.

استفاده از تابع بازگشتی در بسیاری از زبان‌های برنامه‌نویسی به عنوان یک شیوه حل مساله بسیار مفید در برنامه-نویسی رایج است، مانند محاسبه فاکتوریل یک عدد، تولید سری فیبوناچی، و … .

الگوریتم بازگشتی فاکتوریل، یک فرمول ساده و به این صورت است که فاکتوریل عدد n برابر حاصل ضرب n در فاکتوریل عدد n-1 است. به عبارت دیگر برای محاسبه فاکتوریل یک عدد می توان آن عدد را در فاکتوریل عدد قبلی‌اش ضرب کرد.

!n! = n * ( n – ۱ )

هر تابع بازگشتی شامل دو بخش مهم است:

  • یک عبارت حاوی فراخوانی خود تابع
  • یک شرط برای انتخاب بین فراخوانی مجدد و پایان

برنامه فاکتوریل در برنامه‌نویسی c با استفاده از تابع بازگشتی:

#include<stdio.h>

long factorial(int n){if (n == 0)return 1;elsereturn(n * factorial(n-1));}void main(){int number;long fact;printf(“Enter a number: “);scanf(“%d”, &number);fact = factorial(number);printf(“Factorial of %d is %ldn”, number, fact);return 0;}

 الگوریتم بازگشتی فاکتوریل، یک فرمول ساده و به این صورت است که فاکتوریل عدد n برابر حاصل ضرب n در فاکتوریل عدد   n-1  است. به عبارت دیگر برای محاسبه فاکتوریل یک عدد می توان آن عدد را در فاکتوریل عدد قبلی­اش ضرب کرد.

n! = n * ( n – ۱ )!

هر تابع بازگشتی شامل دو بخش مهم است :

  • یک عبارت حاوی فراخوانی خود تابع
  • یک شرط برای انتخاب بین فراخوانی مجدد و پایان

برنامه فاکتوریل در برنامه­نویسی c با استفاده از تابع بازگشتی:

#include<stdio.h>

long factorial(int n)

{

if (n == 0)

return 1;

else

return(n * factorial(n-1));

}

void main()

{

int number;

long fact;

printf(“Enter a number: “);

scanf(“%d”, &number);

fact = factorial(number);

printf(“Factorial of %d is %ldn”, number, fact);

return 0;

}

 خروجی این برنامه با ورودی  n = 6 به صورت زیر خواهد بود:

Enter a number : 6

Factorial of 5 is : 720

https://maktabkhooneh.org/mag/factorial-program-in-c/
تصویر متین اونق

متین اونق

مقالات بیشتر
بازی منچ در پایتون

آموزش جامع ساخت بازی منچ با پایتون

برنامه نویسی پایتون

فهرست جامع دستورات و توابع پایتون (Python Commands List)

آناکوندا در پایتون چیست

آناکوندا پایتون چیست؟ راهنمای کامل مفهوم و آموزش نصب Anaconda

بازی مار با پایتون

آموزش کامل و تصویری ساخت بازی مار با پایتون؛ گام‌به‌گام از صفر + کد کامل

تبدیل تاریخ به شمسی در پایتون

راهنمای جامع تبدیل تاریخ میلادی به شمسی در پایتون (راهنمای جامع ۲۰۲۶)

متدها در پایتون

فهرست جامع و طبقه‌بندی شده تمام متد های پایتون (Python Methods)