日期:2014-05-18  浏览次数:20893 次

今天面试的几道题目大家来看看怎么做???
1)1,1,2,3,5,8,13,21,34,。。。
用C#递归写出算法,算出第30个数?
(麻烦高手把代码贴出来,谢谢!)
2)妻子每天5:30下班,经常去超市逛到6:00,然后座地铁回住的镇上,丈夫都会在6:30到车站接她,
一天妻子5:25下班了,没逛超市,座5:30地铁回镇上,见丈夫没到,打算自己走回去,丈夫还是老时间出来,路上碰到妻子,接她回家,到家看早回家了十分钟,问妻子走了多长时间?


------解决方案--------------------
第一,fibonacci数列
第二,数学问题
------解决方案--------------------
1:
protected void Button1_Click(object sender, EventArgs e)
{
int n = Calculate(1,1,2);
}

private int Calculate(int first, int second, int loop)
{
int res = first + second;
loop++;
if (loop == 14)
{
return res;
}
else
{
return Calculate(second, res, loop);
}
------解决方案--------------------
public class Calcalate
{
int parent=1;
int beginparent=1;
private int getNum()
{
for(int i=1;i<=30;i++)
{
parent+=Child(parent);
}
return parent;
}
private int Child(int parent)
{
return beginparent+=parent;
}

}


}
------解决方案--------------------
namespace test1
{
class Program
{
static int F(int n)
{
if (n <=2) 
return 1;
else
return (F(n - 1) + F(n - 2));

}
static void Main(string[] args)
{
int n=F(30);
Console.WriteLine(n.ToString());

}
}
}
------解决方案--------------------

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); 


评分标准: 写出return Foo(i -1) + Foo(i - 2); 得5分。 

 写出if(i > 0 && i <= 2) return 1; 得5分。

方法参数过多需要扣分(扣除分数 = 参数个数 - 1)

不用递归算法扣5分

(递归算法在树结构建立等方面比较常用)

------解决方案--------------------
--首先在server1中连接server2
exec sp_addlinkedserver
用法见MSDN
SQL code


server1.data1.table1 a inner join server2.data2.table2 b on a。ID=b.ID