又到综合练习时间:递归
2009-11-15 22:59
281 查看
第1题 10!
1
static int f(int i)
2
{
3
if (i < 2)
4
{
5
return 1;
6
}
7
else
8
{
9
return f(i - 1) * i;
10
}
11
}
舍汉王打算重赏国际象棋的发明和进贡者、宰相达希尔。这位聪明大臣的要求看来并不高,他跪在国王面前说:“ 陛下,请您在这张棋盘的第1个小格内放1粒麦子,第2个小格内放2粒,第3格内放4粒,照这样下去,每一小格内都比前一小格加一倍。陛下把这样摆满棋盘上的所有64格的麦粒都赏给您的仆人就行啦!”
“你所求的并不多啊。”国王说道,心里为自己对这种奇妙的发明不用花费太多而暗喜,“你会如愿以偿的。”我们来计算一下,国王需要多少米。
1
static double Chessboard(int i)
2
{
3
if (i == 1)
4
{
5
return 1;
6
}
7
4000
if (i == 2)
8
{
9
return 2;
10
}
11
12
return Chessboard(i-1)*2;
13
14
}
上面计算的是每次最后要放的米粒。
1
double total = 0;
2
for(int i=1;i<=64;i++)
3
{
4
total += Chessboard(i);
5
}
6
System.Console.WriteLine(total);
7
System.Console.WriteLine(Math.Pow(2, 64) - 1);
以上是对该题目的验算。
1
static int f(int i)
2
{
3
if (i < 2)
4
{
5
return 1;
6
}
7
else
8
{
9
return f(i - 1) * i;
10
}
11
}
舍汉王打算重赏国际象棋的发明和进贡者、宰相达希尔。这位聪明大臣的要求看来并不高,他跪在国王面前说:“ 陛下,请您在这张棋盘的第1个小格内放1粒麦子,第2个小格内放2粒,第3格内放4粒,照这样下去,每一小格内都比前一小格加一倍。陛下把这样摆满棋盘上的所有64格的麦粒都赏给您的仆人就行啦!”
“你所求的并不多啊。”国王说道,心里为自己对这种奇妙的发明不用花费太多而暗喜,“你会如愿以偿的。”我们来计算一下,国王需要多少米。
1
static double Chessboard(int i)
2
{
3
if (i == 1)
4
{
5
return 1;
6
}
7
4000
if (i == 2)
8
{
9
return 2;
10
}
11
12
return Chessboard(i-1)*2;
13
14
}
上面计算的是每次最后要放的米粒。
1
double total = 0;
2
for(int i=1;i<=64;i++)
3
{
4
total += Chessboard(i);
5
}
6
System.Console.WriteLine(total);
7
System.Console.WriteLine(Math.Pow(2, 64) - 1);
以上是对该题目的验算。
相关文章推荐
- 又到综合练习时间:递归
- 又到综合练习时间:递归
- 又到综合练习时间:递归
- File类和时间类的两道综合练习
- File类和时间类的两道综合练习
- 4000 File类和时间类的两道综合练习
- File类和时间类的两道综合练习
- File类和时间类的两道综合练习
- File类和时间类的两道综合练习
- 递归练习(C语言)
- 二路归并排序,利用递归,时间复杂度o(nlgn)
- 递推递归练习M - 数值分解
- 这段时间写了个基于Xscale及WinCE平台的多媒体综合软件
- Python练习(1):递归和动态规划的简单应用
- 练习:递归求和
- SpringMVC+Spring+MyBatis 的综合练习 10 (使用 Spring 测试 DAO)
- 第九章中位数和顺序统计学之“查找第i小的元素(递归版)平均运行时间为O(n)算法”
- SpringMVC+Spring+MyBatis 的综合练习 13 (前端页面之员工列表)
- 最快的算法而且不用递归!运行时间是线性的!
- MySQL综合练习