重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
//分数序列如:2\1,3\2.5\3,8\5.13\8,21\13.......的前20项之和。
成都创新互联公司是专业的灵石网站建设公司,灵石接单;提供网站设计制作、网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行灵石网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
#includestdio.h//直接看这一组数列有什么规律,很容易发现,从2/1开始,后一组的分母为前一组的一个分子
//后一项的分子为前一项的分母分子之和,如果用An表示分母,Bn表示分子,则有递推工式,B(n+1)=An::A(n+1)=An+Bn知道这个就很好办了
float getMe(int n)//这个函数就是求第n项的那个数的值
{
float An=2.0;float Bn=1.0;
float temp;
while(--n)
{
temp=Bn;
Bn=An;
An=An+temp;
}
return(An/Bn);}
void main()
{
int n;
float theSum=0.0;
printf("请输入你想要求的前n项的和:");
scanf("%d",n);
for(;n0;n--)
{
theSum=theSum+getMe(n);
}
printf("%f",theSum);
}
//分数序列如:2\1,3\2.5\3,8\5.13\8,21\13.......的前20项之和。
#include
//直接看这一组数列有什么规律,很容易发现,从2/1开始,后一组的分母为前一组的一个分子
//后一项的分子为前一项的分母分子之和,如果用an表示分母,bn表示分子,则有递推工式,b(n+1)=an::a(n+1)=an+bn知道这个就很好办了
float
getme(int
n)//这个函数就是求第n项的那个数的值
{
float
an=2.0;float
bn=1.0;
float
temp;
while(--n)
{
temp=bn;
bn=an;
an=an+temp;
}
return(an/bn);}
void
main()
{
int
n;
float
thesum=0.0;
printf("请输入你想要求的前n项的和:");
scanf("%d",n);
for(;n0;n--)
{
thesum=thesum+getme(n);
}
printf("%f",thesum);
}
//结构定义中包含两个成员,分子和分母
struct fraction
{
int up, down;/*分子和分母*/
};
/*
相加算法的核心是找两个分母的最小公倍数和结果分子分母的最大公约数,分别单独函数来求
*/
int pubtime(int, int);//最小公倍数
int pubsub(int, int);//最大公约数,可用辗转相除法求,挺经典的一个方法。
/********分数相加********/
fraction add(fraction f1, fraction f2)
{
fraction result;
result.down = pubtime(f1.down, f2.down);
result.up = f1.up * result.down / f1.down + f2.up * result.down / f2.down;
int n = pubsub(result.up, result.down);
result.up /= n; result.down /= n;
return result;
}
int pubtime(int n1, int n2)
{
int n = pubsub(n1, n2);
return n1 * n2 / n;
}
int pubsub(int n1, int n2)
{
int r = n1;
if(n2 n1)
r = n1, n1 = n2, n2 = r;
do
{ /*辗转相除*/
r = n1 % n2;
if(r == 0) break;
n1 = n2; n2 = r;
}while(true);
return n2;
}
#includestdio.h
int main()
{
int n;
float t,r=0,fm=2,fz=1;
scanf("%d",n);
while(n--)
{
r+=fm/fz;
t=fm;
fm+=fz;
fz=t;
}
printf("%.6f",r);
return 0;
}
看这数列的找规律:2/1,3/2,5/3,8/5,13/8.......
后一项的分母等于前一项的分子,后一项的分子等于前一项的分母+分子
#include stdio.h
int main()
{
int i,n;
double sum=0,z,m,zSave;//z,m分别保存分子分母
printf("输入数值n:");
scanf("%d",n);
z=2;m=1;
for(i=0;in;i++)
{
sum=sum+z/m;
printf("+%.0lf/%.0lf",z,m);
zSave=z;
z=z+m;
m=zSave;
}
printf("=%.6lf",sum);
return 0;
}