1.try ... catch...finally 2. private int Fib1(int n) { int []a = new int[30]; a[0] = 1; a[1] = 1; for (int i = 2; i < n; i++) { a[i] = a[i - 1] + a[i - 2]; } return a[n-1]; } private int Fib2(int n) { if (n == 1 || n == 2) return 1; else if (n < 30) return Fib(n - 2) + Fib(n - 1); else { return -1; } }
晕,第一个忘记判断n<30了。
2: int [] a = new int[30]; a[0] = 1;a[1] = 1; for (int i=2;i<a.length;i++) { a[i] = a[i-1]+a[i-2]; } 第n为数就是a[n-1];
private int add(int a,int b,int n) { int c=a+b; if(n==3) return c; return add(b,c,n-1); } private int add(int a,int b,int n) { int temp1=a,temp2=b,temp3; for(int i=2;i<n;i++) { temp3=temp2; temp2=temp1+temp2; temp1=temp3; } return temp2; }
凑个热闹//读取数值 int n = Convert.ToInt32(textBox11.Text); //显示字符串 string str = ""; //起始值 int a = 1; int b = 0; //结果 int c = 0; //循环 for (int i = 0; i < n+1; i++) { //奇偶判断 if (Math.IEEERemainder(i,2) == 0) { c = a + b; str = str + c.ToString() + ","; a = c; } else { c = a + b; str = str + c.ToString() + ","; b = c; } } //去掉,号 textBox11.Text = str.Substring(0, str.Length - 1);
private static void Calculate() { long a = 1; long b = 0; for (int i = 0; i < 30; i++) { a += b; b += a; Console.WriteLine(a); Console.WriteLine(b); } }
2.
private int Fib1(int n)
{
int []a = new int[30];
a[0] = 1;
a[1] = 1;
for (int i = 2; i < n; i++)
{
a[i] = a[i - 1] + a[i - 2];
}
return a[n-1]; }
private int Fib2(int n)
{
if (n == 1 || n == 2)
return 1;
else if (n < 30)
return Fib(n - 2) + Fib(n - 1);
else
{
return -1;
}
}
int [] a = new int[30];
a[0] = 1;a[1] = 1;
for (int i=2;i<a.length;i++)
{
a[i] = a[i-1]+a[i-2]; }
第n为数就是a[n-1];
{
int c=a+b;
if(n==3)
return c;
return add(b,c,n-1);
}
private int add(int a,int b,int n)
{
int temp1=a,temp2=b,temp3;
for(int i=2;i<n;i++)
{
temp3=temp2;
temp2=temp1+temp2;
temp1=temp3;
}
return temp2;
}
int n = Convert.ToInt32(textBox11.Text);
//显示字符串
string str = "";
//起始值
int a = 1;
int b = 0;
//结果
int c = 0;
//循环
for (int i = 0; i < n+1; i++)
{
//奇偶判断
if (Math.IEEERemainder(i,2) == 0)
{
c = a + b;
str = str + c.ToString() + ",";
a = c;
}
else
{
c = a + b;
str = str + c.ToString() + ",";
b = c;
}
}
//去掉,号
textBox11.Text = str.Substring(0, str.Length - 1);
{
long a = 1;
long b = 0;
for (int i = 0; i < 30; i++)
{
a += b;
b += a;
Console.WriteLine(a);
Console.WriteLine(b);
}
}