写一函数求N!用主函数调用这个函数,求5!+10!+15!+20!+25!+30!的值。如下:
阳原网站建设公司成都创新互联,阳原网站设计制作,有大型网站制作公司丰富经验。已为阳原上1000家提供企业网站建设服务。企业网站搭建\成都外贸网站制作要多少钱,请找那个售后服务好的阳原做网站的公司定做!
#includestdio.h
int A(int n)
{
if(n==1)
return 1;
else
return n*A(n-1);
}
int main()
{
int sum = 0;
sum = A(5)+A(10)+A(20)+A(25)+A(30);
printf("5!+10!+15!+20!+25!+30!= %d\n", sum);
return 0;
}
思路:函数传入参数n,接着for循环从1到n依次就倒数累加和。
参考代码:
#include "stdio.h"
double fun(int n){
double sum=0;
int i;
for(i=1;i=n;i++)
sum+=1.0/i;
return sum;
}
int main()
{
int n;
scanf("%d",n);
printf("%.2lf",fun(n));
return 0;
}
/*
运行结果:
5
2.28
*/
#define N 10
int sum(int *a){
int i,s=0;
srand((unsigned)time(NULL));
for (i=0;iN;i++){
a[i]=rand() % 100;
printf("a[%d] = %d\n", i,a[i]);
s += a[i];
}
return s;
}
int main() {
int a[N],s;
s = sum(a);
printf("sum=%d\n",s);
return 0;
}
#include stdio.h
int Func(int n)
{
if(n 2)
return 1;
else
return n*Func(n-1);
}
int main()
{
int n = 5;
printf("n! = %d\n",Func(n));
return 0;
}
执行过程:
-》Func(5)
-》5*Func(4)
-》5*(4*Func(3))
-》5*(4*(3*Func(2))))
-》5*(4*(3*(2*Func(1))))
当n为0的时候停止递归,返回结果
由于遇到1的时候返回1,那么Func(1)=1
所以结果是5*(4*(3*(2*1))) = 120
写的太乱了,函数名和变量名最好不要一样,很乱啊,而且你传进来的参数是x的值,里面又用n,最严重是算法本身就错了
int fac(int n)
{
if (n == 0 || n == 1)
return 1;
return n * fac(n-1);
}
#include stdio.h
int Func(int n)
{
if(n 2)
return 1;
else
return n*Func(n-1);
}
int main()
{
int n = 5;
printf("n! = %d\n",Func(n));
return 0;
}
执行过程:
-》Func(5)
-》5*Func(4)
-》5*(4*Func(3))
-》5*(4*(3*Func(2))))
-》5*(4*(3*(2*Func(1))))
当n为0的时候停止递归,返回结果
由于遇到1的时候返回1,那么Func(1)=1
所以结果是5*(4*(3*(2*1))) = 120