2/1+3/2+5/3+8/5+...这个数列每项的分子、分母分别是Fibonacci数列的后一项与前一项。求这一数列前N项的和可采取N由键盘输入,设一循环按Fibonacci数列规律求出分子与分母,将将分式转换为浮点除法求值累加获得最后结果。举例代码如下:
成都创新互联公司专注于雨山网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供雨山营销型网站建设,雨山网站制作、雨山网页设计、雨山网站官网定制、小程序开发服务,打造雨山网络公司原创品牌,更为您提供雨山网站排名全网营销落地服务。
#include "stdio.h"
int main(int argc,char *argv[]){
int a,b,i,N;
double s;
printf("Input N(int 0N44)...\nN=");//大于43时int范围溢出
if(scanf("%d",N)!=1 || N1 || N43){//保证输入正确
printf("Input error, exit...\n");
return 0;
}
for(s=0.0,a=2,b=i=1;i=N;i++){//由此循环计算
s+=a/(b+0.0);//当前项累加给s
a+=b;//下一项的分子是当前项分子分母之和
b=a-b;//下一项分母是当前项分子
}
printf("The result are %.2f (when N=%d)\n",s,N);
return 0;
}
试运行结果如下图:
这个可以通过递归求解的。也可以通过补充你写的sum函数来完成。
#includestdio.h
int
fun(int
n);
/*函数的声明(在main()函数后面定义的函数,一般要在调用他之前声明一下)*/
int
main(void)
{
int
n,s;
printf("n=");
scanf("%d",n);
/*输入项数n*/
s=fun(n);
/*调用函数求和*/
printf("Sum=%d",s);
}
int
fun(int
n)
{
int
i,a=0,s=0;
for(i=1;i=n;i++)
{
a=a+i*2-1;
/*用变量a来存放级数的第i项(A(i)=A(i-1)+i*2-1)*/
s=s+a;
/*用s存放前i项的和*/
}
return
s;
}
#includestdio.h
#includestdlib.h
int main()
{
int count;
int num;
printf("输入运算次数:");
scanf("%d",count);
for (int i = 0; i count; i++)
{
printf("输入第%d个运算的项数:",i+1);
scanf("%d",num);
printf("前%d项和为:%d\n",num,(num*(num+1))/2);
}
system("pause");
return 0;
}
#include stdio.h
int main()
{
int i,n;
int a1,b1,a2,b2,ai,bi;
float sum,t=1.0;
a1=2,b1=1;
a2=3,b2=2;
sum=t*a1/b1+t*a2/b2;
scanf("%d",n);
for(i=2;in;i++) //从第3项开始
{
ai=a1+a2;
bi=b1+b2;
sum+=t*ai/bi;
a1=a2,b1=b2;
a2=ai,b2=bi;
}
printf("前%d项和=%f\n",n,sum);
return 0;
}
示例运行结果:
2
前2项和=3.500000
3
前3项和=5.166667
10
前10项和=16.479906
main(){
int i,n,s=1,f[]={0,1,1};
printf("Please input the number of terms:");
scanf("%d",n);
if(n==0){s=0;f[2]=0;}
for (i=2;i=n;i++)
{ f[2]=f[1]+f[0];f[0]=f[1];f[1]=f[2];
s+=f[1];
}
printf("f(%i)=%i\n",n,f[2]);
printf("Sum(%i)=%i\n",n,s);
scanf("%d");
}