重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
2/1+3/2+5/3+8/5+...这个数列每项的分子、分母分别是Fibonacci数列的后一项与前一项。求这一数列前N项的和可采取N由键盘输入,设一循环按Fibonacci数列规律求出分子与分母,将将分式转换为浮点除法求值累加获得最后结果。举例代码如下:
库伦ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18980820575(备注:SSL证书合作)期待与您的合作!
#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;
}
试运行结果如下图:
1、首先打开vc,点击文件、新建;
2、选择win32 console application 并在右侧输入工程的名字和地址,确定;
3、选择一个空的工程,完成。
4、再次点击文件、新建,
5、选择c++ source file 并输入文件名字,确定,
6、输入如图所示的代码,这里以前十个斐波那契数列数为例,需要输出其他个数请把5改成对应数字的一半(比如要输出前20个,就把图中的5改成10);
7、点击右上角的编译运行按钮。
8、成功地输出了斐波那契数列的前十项,如图。
方法2:
#include stdlib.h
#include stdio.h
int Fibon1(int n)
{
if (n == 1 || n == 2)
{
return 1;
}
else
{
return Fibon1(n - 1) + Fibon1(n - 2);
}
}
int main()
{
int n = 0;
int m=0;
int ret = 0;
printf("请输入要计算的斐波那契数列的前N项总数:");
scanf("%d", n);
m=n;
do
{
ret += Fibon1(n);
n--;
} while (n0);
printf("前%d项目和ret=%d", m,ret);
getchar();
getchar();
return 0;
}
运行结果:
方法4:
#include stdlib.h
#include stdio.h
int Fibon1(int n);
int main()
{
int n = 0;
int m=0;
int ret = 0;
printf("请输入要计算的斐波那契数列的前N项总数:");
scanf("%d", n);
m=n;
do
{
ret += Fibon1(n);
n--;
} while (n0);
printf("前%d项目和ret=%d", m,ret);
getchar();
getchar();
return 0;
}
int Fibon1(int n)
{
if (n == 1 || n == 2)
{
return 1;
}
else
{
return Fibon1(n - 1) + Fibon1(n - 2);
}
}
运行结果:
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");
}
#include stdio.h
int main()
{double x,y,t;
int n,i;
scanf("%lf%d",x,n);
x*=x;
y=t=x; //第一项的值
for(i=2;i=n;i++)
{t*=x/(2*(i-1)*(2*i-1)); //从第2项起的值
y+=t;
}
printf("%lf\n",y);
return 0;
}