سلام دوستان
می خواستم یه برنامه با C بنویسم که یک عدد را از کاربر دریافت و فاکتوریل اون رو حساب کنه و نشون بده که این محاسبات رو تا کجا می تونه ادامه بده
ممنون
سلام دوستان
می خواستم یه برنامه با C بنویسم که یک عدد را از کاربر دریافت و فاکتوریل اون رو حساب کنه و نشون بده که این محاسبات رو تا کجا می تونه ادامه بده
ممنون
سلام
یکی از روشهای محاسبهٔ فاکتوریل به صورت زیر میباشد. (در روش زیر برای محاسبهٔ فاکتوریل از روش «تابع بازگشتی» استفاده کردم)
#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
اگر از کامپایلر 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);
}