62,041
社区成员
发帖
与我相关
我的任务
分享
//递归裴波那契数列
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];
}
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));
}
void main()
{
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);
}
int a = 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;
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);
}
public static int 递归算法(int num)
{
if (num <= 0)
return 0;
else if (num > 0 && num <= 2)
return 1;
else return 递归算法(num - 1) + 递归算法(num - 2);
}
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