1. 写一个函数求n!,主函数通过函数调用的方式求s=1!+2!+3!+……n!并输出结果,n值通过键盘输入。
用循环做
#include<stdio.>
int fac(int n);
int main(void)
{
printf("input n:\n");
int n, i,sum = 0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
sum += fac(i);
}
printf("1!+2!+...+n! = %d\n",sum);
return 0;
}
int fac(int n)
{
if(n==1)
return n;
else
return n*fac(n-1);
}
连续数相乘封装一个函数即可
int jc(int n)
{
int j=1;
for(int i=2;i<=n;i++)
j*=i;
return j;
}
void main()
{
int n;
scanf("%d",&n);
int m = 0;
for(int i=1;i<=n;i++)
m += jc(i);
printf("结果为:%d",m);
}
#include <stdio.h>
/*
2、n的阶乘,如:10!=10*9*8*....*2*1
*/
void main(){
int n;
int i;
double sum = 1;//阶乘的结果
printf("请输入一个数:");
scanf("%d",&n);
for(i=1;i<=n;i++){
sum =sum*i; //阶乘
}
printf("%d的阶乘是%0.2lf\n",n,sum);
}
第一个直觉,递归,用两个递归(阶乘用递归,求和也用递归),每个递归都可以用循环代替,这就有了四种不同解法。
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632