C语言中对于阶乘通常采用循环的方式进行计算
循环的方式有while循环,for循环等
这里采用for循环进行举例,程序代码如下:
int i,sum=1;
for(i=1;i<=n;i++)
{
sum=sum*i;
}
4.上述的变量sum在循环结束后得到的结果即为n!,不过这是在n比较小的情况下,如果需要计算更大的n的阶乘,那么只需将变量sum的类型进行相应调整即可
1.
C语言中对于阶乘通常采用循环的方式进行计算
2.
循环的方式有while循环,for循环等
3.
这里采用for循环进行举例,程序代码如下:
int
i,sum=1;
for(i=1;i<=n;i++)
{
sum=sum*i;
}
4.上述的变量sum在循环结束后得到的结果即为n!,不过这是在n比较小的情况下,如果需要计算更大的n的阶乘,那么只需将变量sum的类型进行相应调整即可
提醒一点:注意你用的类型的大小,比如int32位.
基本15!就已经很大了.如果用int或者long long可以表示,就直接连乘,不需要写什么函数调用
如果结果超过了64位,可以用高精度做.自己模拟计算机运算乘法,用字符串存储.
递归
int compute( int x )
{
if( x == 0)
return 1;
else
return x*compute( x - 1 );
}
这个是最简单的方式,但是效率未必高,你可以用循环来代替。
1.递归方法
int fun(int n)
{
if(n>1)
return n*fun(n-1);
else if(n ==1)
return 1;
}
void main()
{
int n = 10;
int sum = fun(n);
}
2.用循环
void main()
{
int sum = 1;
int i;
int n = 10;
for(i = 1; i <= n; i++)
sum *= i;
}