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<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;
}
以上两种方式是求阶乘的普通算法,求得的结果表示范围都是有限的,如果算大数的阶乘还要另外的算法。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)