برنامه محاسبه فاکتوریل در #C
دسته : برنامه نویسی
نویسنده : فاطمه تابع
تاریخ : 1402/6/11
سطح : متوسط
پست های مرتبط
برنامه محاسبه فاکتوریل در #C
یکی از برنامه های مهمی که در آموزش برنامه نویسی استفاده می شود، تابع فاکتوریل (factorial) است که در تیما برای شما آموزش آن به همراه کد قرار داده شده است.
پس از اینکه تمامی جزئیات مورد نیاز را در زبان برنامه نویسی C# یاد گرفتیم، حالا وقتشه که یکی از معروف ترین برنامه ها رو باهم بنویسیم و بررسی کنیم. فاکتوریل (Factorial) یک مفهوم ریاضی است که در اصل حاصل ضرب تمام اعداد مثبت از عدد ۱ تا یک عدد مشخص است. همچنین لازم به ذکر است که این مفهوم با علامت "!" نمایش داده میشود.
برای مثال:
- فاکتوریل صفر تعریف میشود به صورت 1 (0! = 1).
- فاکتوریل یک نیز برابر با 1 است (1! = 1).
- فاکتوریل 2 برابر می شود با 2 ضرب در عدد قبل آن یعنی 1 (2! = 2*1 = 2).
- فاکتوریل 3 برابر می شود با 3 ضرب در، ضرب عدد های قبل آن یعنی 2 ضرب در 1 (3! = 3*2*1 = 6)
- فاکتوریل 4 برابر می شود با 4 ضرب در 3 ضرب در 2 ضرب در 1 (4! = 4*3*2*1 = 24)، و به همین ترتیب برای بقیه اعداد ادامه می دهیم.
در کل، فاکتوریل یک عدد صحیح مثبت "n" را میتوان با استفاده از فرمول زیر محاسبه کرد:
n! = n* (n-1)*(n-2)*(n-3)*…*3*2*1
فاکتوریلها به طور معمول در محاسبات ریاضی و آماری مختلف استفاده میشوند و همچنین در علوم کامپیوتر، به ویژه در محاسبات انباشتهای (Permutations)، ترکیبها (Combinations) و محاسبات احتمالی استفاده میشود. در برنامهنویسی، محاسبهی فاکتوریل اغلب برای آموزش و نمایش بازگشتی (Recursion)، حلقهها (Loops) و مفاهیم ریاضی در زبانهای برنامهنویسی مختلف استفاده میشود. در ادامه یک نمونه از برنامه فاکتوریل را که با C# نوشته شده است، می بینیم:
برنامه با خواستن یک عدد از کاربر شروع میشود.
عدد ورودی سپس به تابع CalculateFactorial ارسال میشود.
تابع CalculateFactorial یک تابع بازگشتی است که فاکتوریل عدد ورودی را محاسبه میکند. اگر عدد برابر با صفر باشد، تابع 1 را برمیگرداند (شرط پایه). در غیر اینصورت، عدد را در فاکتوریل عدد قبلی (n - 1) ضرب میکند و ادامه بازگشت را تا رسیدن به شرط پایه ادامه میدهد. در آخر هم نتیجه در خروجی نمایش داده میشود.
توجه: فاکتوریل فقط برای اعداد نامنفی (مثبت) تعریف شده است. این برنامه نتایج درستی برای اعداد نامنفی به دست میدهد، اما برای اعداد منفی یا اعداد non-integer جواب نمی دهد. به همین دلیل، بهتر است در صورت نیاز شرط هایی بنویسیم که این حالات یعنی اعداد منفی را کنترل کند.
پست های مرتبط