3个回答
展开全部
这个可以用递归计算阶乘的。
代码如下:
#include<stdio.h>
int main()
{
int fun(int num);
int n;
scanf("%d",&n);
int result =0;
for(int i = 1;i<=n;i++)
{
result += fun(i)
}
printf("result = %d",result);
return 0;
}
int fun(int n)
{
if(n == 0 || n==1)
{
return 1;
}
else
{
return n*fun(n-1);
}
}
其实还有一个方法不用递归,时间复杂度也比上面那个方法要小。代码入下:
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
int temp = 1;
int result =0;
for(int i = 1;i<=n;i++)
{
temp *= i;
result +=temp;
}
printf("result = %d",result);
return 0;
}
展开全部
我写了一个c语言的! #include<stdio.h>
main()
{
int i,n,sum=1;
scanf("%d",&n);
for(i=1;i<=n;i++) //这里多了个分号..
sum*=i; //必须用另外一个变量来存储阶乘的结果.因为i是用来控制循环的.
printf("%d",sum);
getch();
}
main()
{
int i,n,sum=1;
scanf("%d",&n);
for(i=1;i<=n;i++) //这里多了个分号..
sum*=i; //必须用另外一个变量来存储阶乘的结果.因为i是用来控制循环的.
printf("%d",sum);
getch();
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<iostream>
#include<stdio.h>
using namespace std;
int test(int n)
{
if(n ==1)
return n;
else
return n*test(n-1);
}
int main()
{
int n=0;
int sum=0;
printf("请输入一个数字:");
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
sum += test(i);
}
printf("和为:%d\n",sum);
system("pause");
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询