當前位置:首頁 » 編程語言 » c語言用遞歸求e
擴展閱讀
怎麼清除預覽圖片的緩存 2022-11-30 14:15:11
c語言創建有序鏈表 2022-11-30 14:08:06

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; //結束程序
}

大部分代碼我都做了注釋,希望你能理解這個程序。

希望能幫到您。