1,1,2,3,5,8,13...按照这个规律求33位的数字是多少

che2piaopiao 2009-03-05 03:31:58


using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Program pro = new Program();
int count = int.Parse(Console.ReadLine());
Console.WriteLine(pro.work(30));
Console.ReadKey();
}
//1,1,2,3,5,8,13...
//假设n=30
int work(int n)
{

if (n <= 2)
{
return 1;
}
else
{
return work(n - 1) + work(n - 2);
}
}
}
}



最看不懂的就是这一句:return work(n - 1) + work(n - 2); 调用自己??

各位c# Programer..讲解下吧..呵呵
...全文
1573 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
ss1658111 2009-03-06
  • 打赏
  • 举报
回复
学习ING~~~~~~
Grave_rain 2009-03-05
  • 打赏
  • 举报
回复
兔子很好的!
haibin168 2009-03-05
  • 打赏
  • 举报
回复
呵呵。。。。。。。
Cherishny 2009-03-05
  • 打赏
  • 举报
回复
斐波那契数列
f(0) = f(1) =1;
f(n) =f(n-1) + f(n-2) n>=2;

数学里的递归
indeep 2009-03-05
  • 打赏
  • 举报
回复
也来学习一下递归调用
p8c12nano 2009-03-05
  • 打赏
  • 举报
回复
学习了~~ 谢谢递归~~ 我也是新手,好好学习啦~~
spmzfz 2009-03-05
  • 打赏
  • 举报
回复

int A1=1, A2=1,A3=0;
for (int N = 3; N < 34; N++)
{
A3 = A1 + A2;
Console.WriteLine("第{0}位:{1}", N, A3);
A1 = A2;
A2 = A3;
}


第3位:2
第4位:3
第5位:5
第6位:8
第7位:13
第8位:21
第9位:34
第10位:55
第11位:89
第12位:144
第13位:233
第14位:377
第15位:610
第16位:987
第17位:1597
第18位:2584
第19位:4181
第20位:6765
第21位:10946
第22位:17711
第23位:28657
第24位:46368
第25位:75025
第26位:121393
第27位:196418
第28位:317811
第29位:514229
第30位:832040
第31位:1346269
第32位:2178309
第33位:3524578
liuyeede 2009-03-05
  • 打赏
  • 举报
回复
斐波那契。后两句是递归调用的函数。
cppfaq 2009-03-05
  • 打赏
  • 举报
回复
递归  递归做为一种算法在程序设计语言中广泛应用.是指函数/过程/子程序在运行过程序中直接或间接调用自身而产生的重入现像.
  程序调用自身的编程技巧称为递归( recursion)。
  一个过程或函数在其定义或说明中又直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。用递归思想写出的程序往往十分简洁易懂。
  一般来说,递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当边界条件满足时,递归返回。
  注意:
  (1) 递归就是在过程或函数里调用自身;
  (2) 在使用递归策略时,必须有一个明确的递归结束条件,称为递归出口。
  递归算法一般用于解决三类问题:
  (1)数据的定义是按递归定义的。(Fibonacci函数)
  (2)问题解法按递归算法实现。(回溯)
  (3)数据的结构形式是按递归定义的。(树的遍历,图的搜索)
  递归的缺点:
  递归算法解题的运行效率较低。在递归调用的过程当中系统为每一层的返回点、局部量等开辟了栈来存储。递归次数过多容易造成栈溢出等。
bao_yan 2009-03-05
  • 打赏
  • 举报
回复




.........
wanghui0380 2009-03-05
  • 打赏
  • 举报
回复
又见兔子问题,现在咋这么多人问这个

每隔一个月,都会看到有人问这个?难道现在养兔子很赚钱吗
guoyichao 2009-03-05
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 HimeTale 的回复:]
引用 16 楼 guoyichao 的回复:
这种问题还用递归?数学都白学了

static double F(int n)
{
return (Math.Pow((1.0 + Math.Sqrt(5)) / 2, n) - Math.Pow((1.0 - Math.Sqrt(5)) / 2, n)) / Math.Sqrt(5);
}

F(33);

如果面试这么写的话就是给自己一个陷阱,
我会继续问你这个递归式是怎么解的?
不知其所以然的话,留下的印象可不大好哦.
[/Quote]

首先这个不叫解递归,而是叫求通项式,其次面试如果是面这种笔试题的话肯定说明是刚毕业不久的毕业生那么怎么可能连这么简单的通项公式推倒都会忘了?更何况斐波那契数列通项式的推倒过程还是很简单的。
啵比 2009-03-05
  • 打赏
  • 举报
回复
恩 递归 斐波那契数列
HimeTale 2009-03-05
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 guoyichao 的回复:]
这种问题还用递归?数学都白学了

static double F(int n)
{
return (Math.Pow((1.0 + Math.Sqrt(5)) / 2, n) - Math.Pow((1.0 - Math.Sqrt(5)) / 2, n)) / Math.Sqrt(5);
}

F(33);
[/Quote]
如果面试这么写的话就是给自己一个陷阱,
我会继续问你这个递归式是怎么解的?
不知其所以然的话,留下的印象可不大好哦.
guoyichao 2009-03-05
  • 打赏
  • 举报
回复
这种问题还用递归?数学都白学了

static double F(int n)
{
return (Math.Pow((1.0 + Math.Sqrt(5)) / 2, n) - Math.Pow((1.0 - Math.Sqrt(5)) / 2, n)) / Math.Sqrt(5);
}

F(33);
wengjj1985 2009-03-05
  • 打赏
  • 举报
回复
public static void addNum()
{
int firstInt = 1;
int seconInt = 1;
int thirdInt = 0;
for (int i = 0; i < 34; i++)
{
if (i > 1)
{
thirdInt = seconInt + firstInt;
firstInt = seconInt;
seconInt = thirdInt;

}
else
thirdInt= 1;
}
Console.WriteLine(thirdInt);
}
che2piaopiao 2009-03-05
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 taiful307 的回复:]
[/Quote]

你注意点素质 
che2piaopiao 2009-03-05
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 vrhero 的回复:]
递归和斐波那契数列都是初中数学的内容...这样也能混四个裤衩?
[/Quote]

惭愧..
hhxxcj 2009-03-05
  • 打赏
  • 举报
回复
递归和斐波那契数列
wuyq11 2009-03-05
  • 打赏
  • 举报
回复
斐波那契数列,递归调用,看看数据结构。
加载更多回复(9)
内容概要:本研究围绕水面无人艇(USVs)集群协同作战的数学建模与策略优化展开,利用Matlab进行算法实现与仿真验证。研究建立了USVs集群在复杂海洋环境下的运动学与动力学模型,融合编队控制、路径规划、任务分配及避障等关键技术,构建了完整的协同作战框架。通过引入改进的智能优化算法(如改进秃鹰算法),对集群的协同策略进行优化,旨在提升多艇系统的任务执行效率、协同精度与环境适应性,确保其在目标搜索、区域覆盖、协同攻击等作战场景中实现高效、稳定与鲁棒的群体智能行为。研究涵盖了从底层动力学建模到顶层协同决策的全过程,为无人艇集群的实际应用提供了理论依据和技术方案。; 适合人群:具备一定编程基础和控制理论知识,从事无人系统、智能优化、自动化或军事仿真等相关领域的研究生、科研人员及工程技术人员。; 使用场景及目标:①研究多智能体系统(MAS)的协同控制与优化策略;②开发基于Matlab的无人艇集群仿真平台;③优化复杂环境下多机器人系统的任务分配与路径规划算法;④探索智能优化算法在军事仿真和群体智能中的应用。; 阅读建议:此资源以Matlab代码实现为核心,紧密结合理论模型与工程实践。建议读者在学习过程中,不仅要理解数学模型的推导与算法的优化逻辑,更要动手运行和调试所提供的代码,通过可视化仿真结果来加深对集群协同行为的理解,并尝试修改参数或算法结构以探究不同策略的效果,从而达到理论与实践相结合的最佳学习效果。

111,126

社区成员

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

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

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