题目
随机输入一个整数n,求出n的阶乘
思路
阶乘,每次乘的数依次递增,直到第n个数,因此我们可以设置一个变量result,用于储存每一次的运算结果。且每次乘的数都依次递增,可以使用for循环语句,所以需引入一个新变量i 来控制for循环。
源代码
// 计算n的阶乘
int main(){
int result=1;
int n;
printf("请输入你想计算的阶乘数:");
scanf("%d",&n);
for(int i=1;i<=n;i++){
result*=i; //相当于result=result*i
}
printf("阶乘结果为:%d\n",result);
system("pause");
return 0;
}
输出结果(以5!为例)
注意事项
用int类型时,n≤12
因为 13!已经62亿+, 会使int溢出!
n的阶乘再求和
思路:
将上述求n的阶乘定义为一个函数,再在主函数中调用求和即可。
代码附上:
// 求n的阶乘的函数
int factor(n){
int result=1;
for(int i=1;i<=n;i++){
result*=1;
}
return result;
}
//阶乘求和
int main(){
int sum=0;
int num=0;
printf("请输入你想求和的阶乘数:");
scanf("%d",&num);
for(int i=1;i<=num;i++){
sum+=factor(i);
}
printf("阶乘和为:%d\n",sum);
system("pause");
return 0;
}
解析如下:
循环过程:
更多推荐
C语言 求n的阶乘及阶乘和
发布评论