斐波拉奇数列,算法就一种,写法各式各样
一列数的规则如下: 1、1、2、3、5、8、13、21、34...... 求第30位数是多少, 用递归算法实现。
int iCnt;
int Sum=0;
private void button1_Click(object sender, EventArgs e)
{
if (this.textBox1.Text == "")//输入30
return;
iCnt = Convert.ToInt16(this.textBox1.Text);
int i= this.GetData(0,1,0);
MessageBox.Show(i.ToString());
}
private int GetData(int cc,int LastInt,int Lastlastint)
{
if (cc < iCnt-1)
{
Sum = Lastlastint + LastInt;
Lastlastint = LastInt;
LastInt = Sum;
cc =this.GetData( cc + 1,LastInt,Lastlastint);
}
return Sum;
}
private int GetData(int index)
{
int ret;
if((index ==0)||(index==1))
{
ret=1;
}
if(index >1)
{
ret = GetData(index-1)+GetData(index-2);
}
return ret;
}