今天面试的几道题目大家来看看怎么做???
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