已知下面的Fibonacci数列从第3个数起,每个数都是前两个数之和。求该数列中大于100小于1000的数有几个?答案是5个,但是我的代码运行结果是3个。

roujennie 2019-10-24 09:00:53
#include<stdio.h>
main()
{
int i,x,count,sum;
for(i=1,x=1,count=1,sum=0;(x<=1000)&&(i<=1000);count++)
{
x+=i;
i+=x;
if((x>=100&&x<=1000)||(i>=100&&i<=1000))
{
sum=sum+1;
}
}
printf("%d\n",sum);
}
...全文
280 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wowpH 2019-10-24
  • 打赏
  • 举报
回复
#include<stdio.h>
int main() {
	int a, b, c, sum;
	a = b = 1;
	sum = 0;
	c = 2;
	while (c < 1000) {
		if (c > 100) {
			++sum;
		}
		c = a + b;
		a = b;
		b = c;
	}
	printf("%d\n", sum);
	return 0;
}
roujennie 2019-10-24
  • 打赏
  • 举报
回复
引用 1 楼 636f6c696e的回复:
每次循环都计算了两个斐波那契额数,所以统计错误
那可以问一下应该怎么改吗?
636f6c696e 2019-10-24
  • 打赏
  • 举报
回复
每次循环都计算了两个斐波那契额数,所以统计错误

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧