RT~~
说说思路
新手上路 没点头绪
最好能简单的说明递归方法!!!
说说思路
新手上路 没点头绪
最好能简单的说明递归方法!!!
解决方案 »
- 用asp.net做过邮件(收发)系统的来帮帮我
- ============如何产生6位随机数,不重复!
- 表单身份验证中的安全性问题,欢迎大家讨论!
- 请教一个datagrid更新问题
- 才鸟 求助!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!11
- 压缩文件夹问题
- 请高手帮帮我 ExtjS无法显示数据 我的treeData.aspx 这个页面已能正常取到数据,格式也正确
- 怎么对TreeView中的Checkboxlist 进行处理啊,就是在客户端对checkboxlist进行选择然后提交到服务器端,这个问题有点难噢!
- Linq 统计DataTable数据
- mvc3 如果实现只修改表中部分字段值?
- VS2008前天还能用今天就不能用了。大家来帮帮忙啊
- DataList绑定数据的问题
{
if(pos==0||pos==1)
{
return 1;
}
int res = GetNumberAtPos(pos - 1) + GetNumberAtPos(pos - 2);
return res;
}
{
Response.Write(Foo(3).ToString());
} public static int Foo(int i)
{
if (i <= 0)
return 0;
else if (i > 0 && i <= 2)
return 1;
else return Foo(i - 1) + Foo(i - 2);
}
这不是fac***算法吗? protected void Page_Load(object sender, EventArgs e)
{
int[] arr = new int[30];
arr[0] = 1;
arr[1] = 1;
for (int i = 0; i < 30; i++)
{
if ((i == 0) || (i == 1))
{
Response.Write(arr[i]+" ");
}
else
{
arr[i] = arr[i - 1] + arr[i - 2];
Response.Write(" "+arr[i]);
}
}
}
int a = 1; //开始第一位
int b = 1; //开始第二位
int c = 0; //相加值
System.Text.StringBuilder sb = new System.Text.StringBuilder();
sb.Append(a+"、"+b); //初始
for (int i = 1; i <= 28; i++) //已经有2个,所以循环28个可以到30个。
{
c = a + b; //
a = b; // 为计算下一个值赋值
b = c; // 为计算下一个值赋值
sb.Append("、"+c.ToString()); //累加
}
Response.Write(sb.ToString()); //结果:1、1、2、3、5、8、13、21、34、55、89、144、233、377、610、987、1597、2584、4181、6765、10946、17711、28657、46368、75025、121393、196418、317811、514229、832040
{
if (num <= 0)
return 0;
else if (num > 0 && num <= 2)
return 1;
else return 递归算法(num - 1) + 递归算法(num - 2);
}
{
public static void Main()
{
Console.WriteLine(Foo(30));
}
public static int Foo(int i)
{
if (i <= 0)
return 0;
else if(i > 0 && i <= 2)
return 1;
else return Foo(i -1) + Foo(i - 2);
}
}
void main()
{
console.WriteLine(recu(30));
console.ReadLine();
}public static int recu(int i)
{
if(i <= 0)
return 0;
if (i = 1)
return 1;
if (i > 1)
return recu(i-2) + recu(i-1);
}
int b = 1;
List<int> re = new List<int>();
re.Add(1);
re.Add(1);
while(re.Count() < 30)
{
int t = a + b;
a = b;
b = t;
re.Add(b);
}
return re;
3. 一列数的规则如下: 1、1、2、3、5、8、13、21、34...... 求第30位数是多少, 用递归算法实现。
答:public class MainClass
{
public static void Main()
{
Console.WriteLine(Foo(30));
}
public static int Foo(int i)
{
if (i <= 0)
return 0;
else if(i > 0 && i <= 2)
return 1;
else return Foo(i -1) + Foo(i - 2);
}
}
{
string result = recu(30).toString();
console.WriteLine(result);
console.ReadLine();
}public static int recu(int i)
{
if(i <= 0)
return 0; else if (i = 1)
return 1; else
return recu(i-2) + recu(i-1);
}
Int64[] list = new Int64[100]; private void Form1_Load(object sender, EventArgs e)
{
list[0] = 1;
list[1] = 1;
for (int i = 2; i < 100; i++)
{
list[i] = list[i - 1] + list[i - 2];
}
} private void btnTest_Click(object sender, EventArgs e)
{
double f = getFibonacciNumAtPos(5);
string f1 = GetNumberAtListPos(5);
} string GetNumberAtListPos(int pos)
{
return list[pos - 1].ToString();
} double getFibonacciNumAtPos(int n)
{
//直接利用其通项公式 (1/√5)*{[(1+√5)/2]^n - [(1-√5)/2]^n}
return (1.0 / Math.Sqrt(5.0)) * (Math.Pow((1 + Math.Sqrt(5.0)) / 2.0, n) - Math.Pow((1 - Math.Sqrt(5.0)) / 2.0, n));
}
提供这两种方法,不建议在程序中用递归
public int fei(int i)
{
if (i==1 || i==2)
{
return 1;
}
else
{
return fei(i-1) + fei(i-2);
}
}
//非递归裴波那契数列,unsafe代码(用指针)
public unsafe int fib(int no)
{
int* fib = stackalloc int[no];
int* p = fib;
*p++ = *p++ = 1;
for (int i=2; i<no; ++i, ++p) *p = p[-1] + p[-2];
return fib[no];
}
return num==2||num==1 ? 1 : getNum(num-1)+getNum(num-2);
}