2019-12-8数组练习(函数递归)

1、计算下面公式并输出:
函数原型:float fun(int n)//函数原型指的是函数首部
\tiny S=1+(1+\sqrt{2})+(1+\sqrt{2}+\sqrt{3})+…+(1+\sqrt{2}+\sqrt{3}+…+\sqrt{n})
#include <stdio.h>
#include<math.h>
double fun(int n)
{
double f=0.0;
if(n==1)
f=1;
else
f=sqrt(n)+fun(n-1);
return f;
}
main()
{
int n,i;
double S=0.0;
printf(“请输入一个数字n:\n”);
scanf("%d",&n);
for(i=n; i>=1; i–)
S+=fun(i);
printf(“计算后为:\n%lf”,S);
}

2、计算下面公式并输出π的值,要求精度小于0.0005,即某项小于0.0005时迭代(即循环)停止。
函数原型:float fun(int n)
#include <stdio.h>
#include<math.h>
float fun(float i)
{
double a=1,b=1;
int n=1;
while(b>=i)
{
b=bn/(2n+1);
a=a+b;
n++;
}
return 2*a;

}
double main()
{
double c,d;
c=0.0005;
d=fun©;
printf("%lf",d);
}

3、计算下面公式并输出:
S=1+x+xx/2!+xx*x/3!+…+pow(x,n)/n!

函数原型:float fun(int n)
#include <stdio.h>
#include <math.h>
float fun(int n)
{
float f;
if(n0||n1)
f=1;
else
f=n*fun(n-1);
return f;

}
float sum(float x,int n)
{
float S;

if(n==0)
    S=1;
else
    S=pow(x,n)/fun(n);
return S;

}
main()
{
int i,j,n;
float x,S;
printf(“请输入两个数n和x:\n”);
scanf("%d,%f",&n,&x);
for(i=n;i>=0;i–)
S+=sum(x,i);
printf(“计算结果为:%f”,S);

}

4、计算下面公式并输出:
S=1/(12)+1/(23)+1/(34)+…1/(n(n+1))

函数原型:float fun(int n)
#include <stdio.h>
float fun(int n)
{
float sum;
if(n==1)
sum=1.0/2.0;
else
sum=1.0/(n*(n+1))+fun(n-1);
return sum;
}
main()
{
int n;
float S;
printf(“请输入一个数n:\n”);
scanf("%d",&n);
S+=fun(n);
printf(“计算后结果为:\n%f”,S);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值