代码文本:
成都创新互联公司主要从事网站设计制作、做网站、网页设计、企业做网站、公司建网站等业务。立足成都服务魏县,十多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:028-86922220
#include "stdio.h"
double fun(int f,int n){
if(f100000000)
return 1.0/f+fun(f*(n+1),n+1);
return 1.0;
}
int main(int argc,char *argv[]){
printf("e≈%f\n",fun(1,1));
return 0;
}
c函数是一个独立的程序段,它执行具体的、明确的任务
特点:
一个函数只能返回一个值
一个程序可以有一个或多个函数
函数可以嵌套调用,但不能在一个函数中定义另一个函数
无论函数是否有参数,一定要有括号
函数在定义或使用前应在main() 函数中进行声明
递推指的是一个函数中一个量的值要有其他的几个变量或函数得到,比如 function()是一个函数,在另一个函数里面要用到它时,如下 int add() {int a; a=function() }这就是递推。而递归指的是同一个函数的反复调用。比如去求一个数n的阶乘时int jiec(n) {int n; int m; m=n*jiec(n-1); return jiec(n-1); }
用c语言程序,求e,用递归函数,最易于实现的计算方法应该是使用e的极限近似计算,以下以n=1000近似计算之:
n=1000时的近似结果
#includestdio.h
#define n 1000
void calc_e(e)
double *e;
{
if(e[0]*=1.0+1.0/e[1],--e[2]=0)
return;
else calc_e(e);
}
int main(void){
double box[3]={1.0,n,n};
calc_e(box);
printf("%lf\n",box[0]);
return 0;
}
n=10000时的近似结果
#includestdio.h
#includestdlib.h
double e(int n,double x,int cheng)
{
double t;
cheng*=n;
t=1.0/(double)cheng;
if(t0.000001)
{
return e(n+1,t+x,cheng);
}
return x;
}
int main()
{
printf("%lf",e(1,1.0,1));
system("pause");
return 0;
}
我给你介绍一个公式吧:(泰勒工式展开式)
e=1+ 1 + 1/2! +1/3! +1/4! +1/5! + ...+ 1/n!
其中,n!表示n的阶乘:n!=n*(n-1)*(n-2)*...*3*2*1;可以专门设计一个子函数求 n! ;(n越大,精确度越高)
下面是代码:
//网页上直接写的,在VC++6.0运行时如果编译出错,那就改一下分
//号和逗号
#includestdio.h
#define N 20
int jiecheng(int n)
{
int i=n;
int result=1;
while(i)//
{
result*=i;
i--;
}
return result;
}
void main()
{
int i;
double e=2;
for(i=2;iN;i++)
{
e+=1/(jiecheng(i)*1.0)
}
printf("e=%lf\n",e);
}