黑马程序员技术交流社区
标题:
分享一道有意思的面试题
[打印本页]
作者:
dbqwaii
时间:
2013-2-26 10:13
标题:
分享一道有意思的面试题
1 1 2 3 5 8 13 21 34```` 找出规律
int a = 1;
int b = 0;
int sum = 0;
for (int i = 0; i < 8; i++)
{
sum = a + b;
b = a;
a = sum;
Console.WriteLine(sum);
}
希望还有其他的方法 谢谢
Console.ReadKey();
作者:
王立
时间:
2013-2-26 10:21
用递归可以
static void Main(string[] args)
{
//求 1 1 2 3 5 8
//普通方法
int[] num = new int[10];
num[0] = 1;
num[1] = 1;
for (int i = 2; i < num.Length; i++)
{
num[i] = num[i-1] + num[i-2];
}
Console.WriteLine(num[9]);
Console.ReadKey();
//递归
Console.WriteLine(DiGui(10));
Console.ReadKey();
}
//递归
public static int DiGui(int i)
{
if (i==1)
{
return 1;
}
else if (i==2)
{
return 1;
}
else
{
return DiGui(i - 1) + DiGui(i - 2);
}
}
作者:
xiaoxiang_04
时间:
2013-2-26 10:24
这个一般用递归算法
static int F(int x)
{ if(x<1)
{throw new InvalidArgumentException("x"); }
else if(x<3)
{return 1;}
else
return F(x-1)+F(x-2); }
这样可以保证,这个数列到多少位都可以算的出来
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2