当前位置:首页 » 编程语言 » c语言用递归求e
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言用递归求e

发布时间: 2022-09-25 18:51:11

A. “c语言”设计一个递归函数,计算e的n次方。

#include<stdio.h>
#include<stdlib.h>
int jiecheng(int e,int n)
{
//int x=e;
if(n==1)
return e;
else
{
return e*jiecheng(e,--n);
}
}
int main()
{
int a,n,e;
printf("输入一个数a\n");
scanf("%d",&a);
printf("输入一个数n\n");
scanf("%d",&n);
e=jiecheng(a,n);
printf("%d的%d次方是%d\n",a,n,e);
exit(0);
}

B. 求c语言程序,求e,用递归函数

用c语言程序,求e,用递归函数,最易于实现的计算方法应该是使用e的极限近似计算,以下以n=1000近似计算之:

n=10000时的近似结果

C. c语言编程求自然数e

#include "stdio.h"
void main()
{
int k,j;
long m;
double e=0;
for(k=0;;k++)
{
// k!
for(j=1,m=1;j<=k;j++)
{
m*=j;
}
e+=1.0/m;
if(1.0/m < 0.000001)
break;
}
printf("e=%lf",e);

printf("\npress any key to exit:\n");
getch();
}

运行结果:
e=2.718282
press any key to exit:

D. C语言用递归方法求E

/* e=1+1/1!+1/2!+1/3!+…�=2.71828 */
#include <stdio.h>
#include <math.h>unsigned long factorial(unsigned short n) {
if(n <= 1) return 1;
return n*factorial(n - 1);
}double e(unsigned short n) {
if(n <= 1) return 2.0;
return e(n - 1) + 1.0/factorial(n);
}int main() {
printf("e ≈ %lf\n\n",e(30));
return 0;
}

E. C语言 递归程序 求解

递归函数就是做了一件事:求和
递归过程如下:
第一次进入:n==3, 执行的是 p[0]+f(&p[1],2);这样的话会继续调用函数f,也就有了第二次进入。
第二次进入:表达式变成了p[0]+p[1]+f[&p[1],1],这样的话会继续调用函数f,也就有了第三次进入。
第三次进入:n==1, p[0]+p[1]+p[2].
return (p[0]+f(&p[1],2)=p[0]+p[1]+f[&p[1],1]=p[0]+p[1]+p[2])-->return p[0]+p[1]+p[2]
递归一般是出于效率的要求,当然你这个没什么影响。递归也不是用在这里的。看递归要干什么很简单,看两点:1.递归退出条件是什么,退出时的返回值;2.递归时在做什么。

F. 求助 谁帮我解一下: 用C语言; 求e的值 e= 1+1/1!+1/2!+........+1/n! 设计程序

#include <stdio.h>
void main()
{
int n,sigh=1;
float m=1,sum=1,term;
for(n=1;n<=1000;n++)
{
m=m*n; //用来计算N的阶乘
term=sigh/m; //用来计算1/N的值
sum=sum+term;
}
printf("%.10f\n",sum);
}

G. C语言:求e的近似值

这题目有点奇怪:计算精度到10^-4为止,输出却要到12位小数(要那么多位不准确的数?)

#include<stdio.h>
intmain()
{inti,t=1;
doublee=0;
for(i=1;t<10000;i++)
{e+=1.0/t;
t*=i;
}
printf("%.12lf ",e);
return0;
}

H. 用C语言的函数递归方法来求

#include <stdio.h>

#include <math.h>

void fun2(int m)

{

int k=0,a[10];

for(int i=2;i<m;i++)

if(m%i==0)

a[k++]=i;

for(int i=0;i<k;i++)

{

printf("%d",a[i]);

if(i!=k-1)

printf(",");

}

}

void fun1(int m)

{

if(m<2)

printf("%d is a prime number",m);

for(int i=2;i*i<=m;i++)

if(m%i==0)

fun2(m);

else

printf("%d is a prime number",m);

}

int main( )

{ int n;

scanf("%d",&n);

fun1(n);

return 0;

}

I. C语言编程计算e

楼主你好
具体代码如下:
#include<stdio.h>
int main()
{
double e=1,index;
int i=1,j=1;

do{
i*=j;
index=1.0/i;
e+=index;
j++;
}while(index>=1E-6);

printf("e=%.5f\n",e);
return 0;
}

希望能帮助你哈

J. c语言求e=1+1/1!+1/2!+1/3!+1/4!+......

问题没说清楚是怎么求,所以这里我决定求第n项的e(n通过控制台输入获取,例如n=3,则e=1+1/1!+1/2!。)。这是我的代码:

#include <stdio.h>
int jiecheng(int n) //阶乘函数(利用递归方式计算)
{
if (n == 1) //递归结束条件,如果n等于1
{
return 1; //返回终值
}
return n * jiecheng(n - 1); //否则继续递归计算
}
int main() //main函数
{
int n, i; //n为第几项,i为for循环的控制变量
scanf("%d", &n); //输入n
double e = 1.0; //声明变量e并初始化
for (i = 2; i <= n; i++) //声明for循环
{
e += 1.0 / jiecheng(i); //e加上当前计算结果(即1/1!,1/2!等)
}
printf("%f", e); //输出e
return 0; //结束程序
}

大部分代码我都做了注释,希望你能理解这个程序。

希望能帮到您。