文章目录
- 1.1.需求描述以及设计思路
- 1.2.代码编写及实现
- 1.3.通过列表生成式来实现
1.1.需求描述以及设计思路
需求描述:
印度的舍罕王打算重赏一个宰相,问他有什么要求:
宰相说,请您在在这个棋盘的第一个格子里放1粒麦子,第二个格子里放2粒麦子,第三个格子里放4粒麦子,每一个格子里的麦子数量都要比前一个格子多一倍,把这64个格子都放满就行了。
舍罕王听后认为区区赏金微不足道,可以给。
我们需要实现的功能是,计算出舍罕王一共要在64个格子里放下多少粒麦子。
程序的设计思路:
- 首先我们要明确计算过程,第一个格子里1粒麦子,第二个格子里2粒麦子,第三个格子4粒麦子,可见每个格子里的麦子数是上一个格子的一倍,每个格子里的麦子数也都是2的n次方。
- 实现这个程序主要通过循环,循环的次数就是格子数64,每次循环都用上一次格子里的麦子数*2,就可以得到当前格子的数量,最后将每次循环后格子的麦子数相加,就是所有格子里的麦字数量了。
- 在开始循环之前,先定义两个变量,这两个变量作为初始值。
- 第一个变量用于存放当前格子的麦子数,第一个格子已经明确知道只有1个麦子了,