PDA

View Full Version : فاکتوریل با C



darkarmy
شنبه 09 اردیبهشت 1396, 11:18 صبح
سلام دوستان

می خواستم یه برنامه با C بنویسم که یک عدد را از کاربر دریافت و فاکتوریل اون رو حساب کنه و نشون بده که این محاسبات رو تا کجا می تونه ادامه بده

ممنون

علی بهمنی جلالی
شنبه 09 اردیبهشت 1396, 18:12 عصر
سلام
یکی از روش‌های محاسبهٔ فاکتوریل به صورت زیر می‌باشد. (در روش زیر برای محاسبهٔ فاکتوریل از روش «تابع بازگشتی» استفاده کردم)

#include <stdio.h>


int factorial(int);


int main()
{
int n = 5;

printf("%d! = ", n);

for (int i = 1; i <= n; ++i)
{
printf("%d", i);

if (i != n)
{
printf(" * ");
}
}

printf(" = %d\n", factorial(n));

return 0;
}




int factorial(int n)
{
if (n <= 1)
{
return 1;
}

return n * factorial(n - 1);
}

نتیجه:
5! = 1 * 2 * 3 * 4 * 5 = 120

علی بهمنی جلالی
شنبه 09 اردیبهشت 1396, 18:32 عصر
اگر از کامپایلر clang نسخه ۳٫۳ به بالا استفاده می‌کنید، می‌توانید در برنامهٔ خود، تا حدودی از unicode identifier استفاده کنید. مثلاً در برنامهٔ زیر بجای اینکه تابع فاکتوریل را با استاندارد ASCII بنویسم، آمدم و با استاندارد یونیکُد (Unicode) به زبان فارسی نوشتم. (برخی از زبان‌های برنامه‌نویسی جدید از unicode identifier پشتیبانی به عمل می‌آورند)

#include <stdio.h>


int فاکتوریل(int);


int main()
{
int n = 5;

printf("%d! = ", n);

for (int i = 1; i <= n; ++i)
{
printf("%d", i);

if (i != n)
{
printf(" * ");
}
}

printf(" = %d\n", فاکتوریل(n));

return 0;
}




int فاکتوریل(int n)
{
if (n <= 1)
{
return 1;
}

return n * فاکتوریل(n - 1);
}