用c语言实现一个数列的求和问题。菜鸟上路,高手指点

BLUE__OCEAN 2008-03-15 12:34:30
/************************************************
problem: 1+1=2
2+1=3
3+2=5
5+3=8
8+5=13......
*************************************************/
// my code:
#include <stdlib.h>
#include <stdio.h>

int fib(int);

int main(void)
{
int temp,x;

scanf("%d",&temp);
x=fib(temp);
printf("%d\n",x);
return 0;
}

int fib(int input)
{
int x=1,y=2,i=1;

if (input == 1)
{
return y;
}
else
{
int temp=0;
for (; i<input; i++)
{
temp = x+y;
x = y;
y = temp;
}
}

return y;
}
...全文
533 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
moss830704 2008-03-15
  • 打赏
  • 举报
回复
你想问什么?
ryfdizuo 2008-03-15
  • 打赏
  • 举报
回复
什么问题?
qiuqiu173 2008-03-15
  • 打赏
  • 举报
回复
你是程序相出错还是想问解释程序 还是........
fangxu1999 2008-03-15
  • 打赏
  • 举报
回复
结果不错,不过程序有点乱。
int fib(int n)
{
if (n==1 )
{
return 2;
}
else if(n==2)
{
return 3;
}
else
{
return fib(n-1)+fib(n-2);
}
}
这样写会清晰一点吧
wenjun1130 2008-03-15
  • 打赏
  • 举报
回复
不是高手,看看 觉得main()改下更好
int main(void)
{
int temp;

scanf("%d",&temp);

printf("%d\n",fib(temp));
return 0;
}
ryfdizuo 2008-03-15
  • 打赏
  • 举报
回复
斐波纳契数列:
1,1,2,3,5,8,13,21,34,55......
??
clhposs 2008-03-15
  • 打赏
  • 举报
回复
没听懂你题目的意思哦! -_-!
BLUE__OCEAN 2008-03-15
  • 打赏
  • 举报
回复
代码写的少,大家不要见笑。
BLUE__OCEAN 2008-03-15
  • 打赏
  • 举报
回复
我的意思说大家帮我检查下代码,看有那些不规范,那里不对的地方或者有更好的算法,可以给我提个意见。谢谢

69,322

社区成员

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

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