用递归求值,算法题,用兴趣的来接龙

yuanzhaofu01 2009-04-03 09:46:43
有这么一组数据:1 1 2 3 5 8 13 21 。。。
要求是用递归方法求出第30项。
我写的是:
public void getNum()
{
int i=1
int j=1
int sum=0
int z=1
if(z<29)
{
sum=i+j;
j=i;
i=sum;
z++;
getNum();
}
}
...全文
132 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
十八道胡同 2009-04-04
  • 打赏
  • 举报
回复
楼主写的代码看起来好混乱。

int f(int n)
{
if(n==0||n==1)
{
return 1;
}else
{
return f(n-1)+f(n-2);
}
}
Kingsley726 2009-04-03
  • 打赏
  • 举报
回复
int fb(int n)
{
if (n == 0 || n == 1 )
return 1;
else
{
return fb(n - 2) + fb(n - 1);
}
}
coodd 2009-04-03
  • 打赏
  • 举报
回复
.net笔试题的熟人
yuanzhaofu01 2009-04-03
  • 打赏
  • 举报
回复
1楼兄弟有点小错误
应该改这样
public int fab(int n)
{
return (n > 1) ? (fab(n - 1) + fab(n - 2)) : ((n < 1) ? 0 : 1);
}
第三元那应该小于1而不是小于0
huanglaobo 2009-04-03
  • 打赏
  • 举报
回复
我才看到一楼的。
不过我这个加几行代码后重复执行的效率就很高了。
关于溢出,我调用支持大数的类。
这个也是不用考虑的。
huanglaobo 2009-04-03
  • 打赏
  • 举报
回复
我胡乱写个没经过算法优化的版本吧。
没经过测试,也没考虑溢出。

public int getFibonacci(int n) //n为指定你求的是第几个数
{
if(n<0) throw new Exception("没有小于零的斐波那契数列");
if(n==1||n==2) return 1;
return getFibonacci(n-1)+getFibonacci(n-2);
}
我姓区不姓区 2009-04-03
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 yuanzhaofu01 的回复:]
方法很多啊,有人用递归的吗?我希望有人可以看下我写的程序,评价下。是否有错,如何改进。。
[/Quote]
1楼的不就是递归吗,递归效率很低的,且如果你只是声明为int类型的话很容易溢出,
你自己不会测试一下?我没有运行过你的程序,但肯定有错,绝对死循环
huanglaobo 2009-04-03
  • 打赏
  • 举报
回复
楼主写的递归调用有问题。
而且很奇特的是,你这样写不就死循环了。
4楼的那个才是递归。
不过它那个没有赋初值。
这个倒是令人费解。
Garnett_KG 2009-04-03
  • 打赏
  • 举报
回复


public static int Fibonacci(int n,int ac1,int ac2)
{
if (n == 0) return ac1;
return Fibonacci(n - 1, ac2 , ac1+ac2);

}

yuanzhaofu01 2009-04-03
  • 打赏
  • 举报
回复
方法很多啊,有人用递归的吗?我希望有人可以看下我写的程序,评价下。是否有错,如何改进。。
我姓区不姓区 2009-04-03
  • 打赏
  • 举报
回复
又见斐波那契……

public static ulong Fibonacci(int n)
{
if (n <= 2)
return 1;
ulong a = 1;
ulong b = 1;
for (int i = 2; i < n; i++)
{
if (a + b <= ulong.MaxValue)
{
b = a + b;
a = b - a;
}
else
{
Console.WriteLine("OverFlow");
}
}
return a + b;
}

gui0605 2009-04-03
  • 打赏
  • 举报
回复
public int fab(int n)

{
return (n > 1) ? (fab(n-1) + fab(n-2)) : ((n < 0) ? 0 : 1 );
}

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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