c语言如何求一个数的阶乘

c语言如何求一个数的阶乘,第1张

n的阶乘就是从1到的累积,所以可以通过一个for循环,从1到n依次求积即可。

参考代码:

#include "stdioh"

int main() {

int n,i,s=1;

scanf("%d",&n);

for(i=1;i<=n;i++)//for循环求累积

s=si;

printf("%d\n",s);

return 0;

}

/

运行结果:(例如求5的阶乘)

5

120

/

扩展资料:

 

return用法:

return返回一个数值的意思就是把return<表达式>后面表达式的值返回给调用他的函数。举个例子:

int sum(int i,int j)

{

return i+j;

printf("这个语句不会被执行,因为该子函数执行到上面的return语句就无条件结束了");

}

main()

{

int a=10,b=11,c;

c=sum(a,b);

printf("%d",c);

}

利用阶乘的定义求解阶乘     
#include<stdioh>
void main()   

    int i,n;     
    long f=1;   
    scanf("%d",&n);
    for(i=1;i<=n;i++)
        f=fi;   
    printf("%d!=%ld",n,f);
}    
递归方法求阶乘
#include "stdioh"
long fact(int n)
{  
    long s;  
    if(n<=1)
        s=1; 
    else     
        s=nfact(n-1); 
    return s;
}    
void main()
{
    int num;   
    scanf("%d",&num);   
    printf("%d!=%ld\n",num,fact(num)); 
}

#include<stdioh>
main(){
int sum=1;
int n;
printf("Please input the number N:");
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
sum=sumn;
}
printf("SUM=%d",sum);
}

以下是使用 for 循环语句编写 n 的阶乘的 C 语言代码实现:
```c
#include <stdioh>
int main() {
int n, factorial = 1;
printf("请输入一个整数:");
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
factorial = i;
}
printf("%d 的阶乘为:%d
", n, factorial);
return 0;
}
```
代码解释:
1 在 `main` 函数中定义变量 `n` 和 `factorial`,分别表示用户输入的数和阶乘结果。
2 通过 `printf` 和 `scanf` 函数获取用户输入的整数。
3 循环计算 1 至 `n` 之间的数的乘积,即为 `factorial` 的值。
4 所有数的乘积计算完之后,输出 `factorial` 即可。
运行结果:
```
请输入一个整数:5
5 的阶乘为:120
```
可以看到,这段 C 语言代码输出了 5 的阶乘,结果为 120。

#include <stdioh>
int main()
{
 int Output = 1;
 int Input;
 printf("Input n:");
 scanf("%d",&Input);
 while(Input>0)
 {
  Output=Input;
  Input--;
 }
 printf("Output:%d\n",Output);
 return 0;
}

参考代码如下:
#include<stdioh>
int main()
{
long f=1;
int i,n;
scanf("%d",&n);
for(i=1;i<=n;++i){
f=fi;
printf("%d!=%ld\n",i,f);
}
return 0;
}

1、使用递归算法

#include <stdioh> 
#include <processh> 
long factorial(int n)
{
long result;
if (n<0)
{
printf("n<0,请输入大于等于0的整数!");
return -1;
}
else if (n == 0 || n == 1)
{
result = 1;
}
else
{
result = nfactorial(n - 1);
}
return result;
}
main()
{
int n = 100;
long iNum;
iNum = factorial(n);
printf("10!=%ld\n", iNum);
system("pause");
}

2、使用循环

#include<stdioh>
#include<processh>
int main()
{
int  i = 1;  //累加变量
long j = 1;  //储存结果
int  k = 1;  //输入的数值
printf("请输入一个数字:");
scanf("%d", &k);
do
{
j = ji;
i++;
} while (i <= k);
printf("%ld\n", j);
system("pause");
return 1;
}

以上两种方式是求阶乘的普通算法,求得的结果表示范围都是有限的,如果算大数的阶乘还要另外的算法。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13250563.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-06-26
下一篇 2023-06-26

发表评论

登录后才能评论

评论列表(0条)

保存