主题:求助一个编程
ak47ak
[专家分:0] 发布于 2008-04-06 20:21:00
请高手们帮忙编个程序,在此谢谢各位了
程序如下
有一分数数列 2/1 3/2 5/3 8/5 13/8 21/13
求这个数列前20项的和
回复列表 (共3个回复)
沙发
andywenming [专家分:0] 发布于 2008-04-07 02:10:00
请问,如果你不用编程,就是用高中学过的数学,你能算出来吗.
可能你高中数学忘得差不多了吧..
板凳
pangziguo [专家分:70] 发布于 2008-04-09 02:19:00
老大,超出精度范围了
这个只供参考
#include "stdio.h"
void main()
{
int i,j,y=0,k=2,l=1;
for(i=0;i<20;i++)
{
for(j=1;j<=k;j++)
{
if((!(k%j))&&(j!=1&&j!=k))
k++;
}
for(j=1;j<=l;j++)
{
if((!(l%j))&&(j!=1&&j!=l))
l++;
}
y+=k/l;
k++;
l++;
}
printf("%d",y);
}
3 楼
pangziguo [专家分:70] 发布于 2008-04-09 02:23:00
#include "stdio.h"
void main()
{
int i,j;
double y=0,k=2,l=1
for(i=0;i<20;i++)
{
for(j=1;j<=k;j++)
{
if((!(k/*这里把k的double类型装换为int类型*/%j))&&(j!=1&&j!=k))
k++;
}
for(j=1;j<=l;j++)
{
if((!(l/*这里把l的double类型装换为int类型*/%%j))&&(j!=1&&j!=l))
l++;
}
y+=k/l;
k++;
l++;
printf("%d\n",y);
}
printf("%d",y);
}
这个应该是可以解决你的问题的,估计是超出精度了,而且我也不会类型装换,哪位会,给发个消息啊,共同进步嘛
我来回复