求一个递归算法问题???? 列入: 1,1,2,3,5,8,13,21,34,55.......... 怎样知道第n项是什么??? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 public int GetNum(int pos) { if(pos==0||pos==1) { return 1; } int val = GetNum(pos - 1) + GetNum(pos - 2); return val; } 飞波那切数列,后一项等于前两项之和//... static int Calculate(int i){ if(i==0||i==1)return 1; return Calculate(i)+Calculate(i-1); }//... 对不起写错了,应该是//... static int Calculate(int i){ if(i==0||i==1)return 1; return Calculate(i-1)+Calculate(i-2); }//... static void Main(string[] args) { int n = Convert.ToInt32(Console.ReadLine()); Console.WriteLine(GetNum(n).ToString()); } public static int GetNum(int pos) { if (pos == 0 || pos == 1) { return 1; } int val = GetNum(pos - 1) + GetNum(pos - 2); return val; }//输入1,输出1.//输入2,输出2.//输入3,输出3.//输入4,输出5.//第一项和第二项应该都是1才对,可现在第二项是2啊 protected int recursion(int pos) { if (pos == 3) return 2; if (pos < 3) return 1; return recursion(pos - 2) + recursion(pos - 1); }1楼已经给出答案了, 就是少了个pos==3的判断 csdn不能修改自己的帖子?? 囧 for (int i = 1; i <= 10; i++) { Response.Write(recursion(i)+","); }得到1,1,2,3,5,8,13,21,34,55,应该就是LZ要的了吧~ int GetNum(int n){ if (1 == n || 2 == n) { return 1; } else if (n > 2) { return GetNum(n - 1) + GetNum(n - 2); } else { //when n <= 0. return 0; }} 如果只是想知道第n项的值,用递归还可以。如果要打印从1到n项所有的值,最好保存前2项的值,这样可以提高效率。int n1 = 1;int n2 = 1;Console.Write(n1.ToString() + ", " + n2.ToSting());int temp;for(int i = 3; i <= n; i++){ temp = n1; n1 = n2; n2 += temp; Console.Write(", " + n2.ToString());} 你找到规律了吗f(n)=1; n=0f(n)=1; n=1f(n)=f(n-1)+f(n-2); n>=2 算法如下:int fun(int n){if(n=1||n=2) return(1);else if(n>1) return(fun(n-1)+fun(n-2));else exit(1);} 怎样判断一个字符串全是空格 C# 北京机动车限行尾号算法问题 帮我看看这段代码,谢谢 C# WinForm MDI子窗体关闭的同时对父窗体进行操作? CSDN里的各位大虾们都推荐几本C# Winform方面的好书吧,谢谢~ 用Jmail怎么实现群发邮件啊??? TextBox数据更问题 在任何地方移动鼠标都能引发鼠标事件,这个事件怎样写?如何调用? C#写的程序要如何发布? 如何调用系统,任务计划向导,就是控制面板里那个,我自己写周期性任务太麻烦了,系统地可不可以用阿 数据库的行存取 c# socket.send 如何发送零字节的byte[]
public int GetNum(int pos)
{
if(pos==0||pos==1)
{
return 1;
}
int val = GetNum(pos - 1) + GetNum(pos - 2);
return val;
}
后一项等于前两项之和//...
static int Calculate(int i){
if(i==0||i==1)return 1;
return Calculate(i)+Calculate(i-1);
}
//...
//...
static int Calculate(int i){
if(i==0||i==1)return 1;
return Calculate(i-1)+Calculate(i-2);
}
//...
static void Main(string[] args)
{
int n = Convert.ToInt32(Console.ReadLine());
Console.WriteLine(GetNum(n).ToString());
}
public static int GetNum(int pos)
{
if (pos == 0 || pos == 1)
{
return 1;
}
int val = GetNum(pos - 1) + GetNum(pos - 2);
return val;
}
//输入1,输出1.
//输入2,输出2.
//输入3,输出3.
//输入4,输出5.
//第一项和第二项应该都是1才对,可现在第二项是2啊
{
if (pos == 3) return 2;
if (pos < 3) return 1;
return recursion(pos - 2) + recursion(pos - 1);
}1楼已经给出答案了, 就是少了个pos==3的判断
{
Response.Write(recursion(i)+",");
}得到1,1,2,3,5,8,13,21,34,55,
应该就是LZ要的了吧~
int GetNum(int n)
{
if (1 == n || 2 == n)
{
return 1;
}
else if (n > 2)
{
return GetNum(n - 1) + GetNum(n - 2);
}
else
{
//when n <= 0.
return 0;
}
}
如果要打印从1到n项所有的值,最好保存前2项的值,这样可以提高效率。int n1 = 1;
int n2 = 1;
Console.Write(n1.ToString() + ", " + n2.ToSting());int temp;
for(int i = 3; i <= n; i++)
{
temp = n1;
n1 = n2;
n2 += temp;
Console.Write(", " + n2.ToString());
}
f(n)=1; n=0
f(n)=1; n=1
f(n)=f(n-1)+f(n-2); n>=2
int fun(int n)
{
if(n=1||n=2)
return(1);
else if(n>1)
return(fun(n-1)+fun(n-2));
else
exit(1);
}