monthrange()、多元赋值、斐波那契数列(非递归)和汉诺塔(递归)
2016-07-17 16:49
225 查看
某只菜鸟开始写点播客,记录一下自己的想法和一些python的用法。
今天写了三个程序(某学习网站上的三个小测验),因为对python语法的不太熟悉,写的过程比较艰辛
1.关于时间和日期
假设某年某月某日星期几,求某年某月最后一天星期几?
比如1800年1月1号星期三(事实上就是星期三),求2016年7月的最后一天星期几?
第一步:
calendar 模块里有一个方法monthrange可以根据年份,月份求得上个月最后一天星期几,和这个月的天数。
比如calendar.monthrange(2016,7)返回两个数字,第一个数字是上个月最后一天星期几(0-6),第二个数字这个月有多少天。
第二步:
验证一下给的星期是不是正确的:如果正确,则第一步中的两个数字相加除以7取余就得到结果;如果不正确,两数字之和再加上星期的差值除以7取余,比如实际上是星期一,给的是星期三,就两数字之和加上2在除以7取余
2.关于斐波那契数列(非递归)
第一种:
三个变量,m0,m1,m2, 其中m0用于保存某一个值,m1,m2用于记录斐波那契数列的后两个数。
m0=m2;m2=m1+m2;m1=m0;经过n-2次循环,就可以得到第n个数。
第二种,python中可以用一种更简单的方法,多元赋值,这时,只需两个变量,m1,m2
m1,m2=m2,m1+m2
3.汉诺塔盘子的问题(递归)
三个塔的名字分别为:起始塔、中间塔、目的塔
分三步;
第一步:
n-1个盘子从起始塔借助目的塔移动到中间塔
第二步:
第n个盘子从起始塔移动到目的塔(一般需要打印出来)
第三步:
n-1个盘子从中间塔借助起始塔移动到目的塔
今天写了三个程序(某学习网站上的三个小测验),因为对python语法的不太熟悉,写的过程比较艰辛
1.关于时间和日期
假设某年某月某日星期几,求某年某月最后一天星期几?
比如1800年1月1号星期三(事实上就是星期三),求2016年7月的最后一天星期几?
第一步:
calendar 模块里有一个方法monthrange可以根据年份,月份求得上个月最后一天星期几,和这个月的天数。
比如calendar.monthrange(2016,7)返回两个数字,第一个数字是上个月最后一天星期几(0-6),第二个数字这个月有多少天。
第二步:
验证一下给的星期是不是正确的:如果正确,则第一步中的两个数字相加除以7取余就得到结果;如果不正确,两数字之和再加上星期的差值除以7取余,比如实际上是星期一,给的是星期三,就两数字之和加上2在除以7取余
2.关于斐波那契数列(非递归)
第一种:
三个变量,m0,m1,m2, 其中m0用于保存某一个值,m1,m2用于记录斐波那契数列的后两个数。
m0=m2;m2=m1+m2;m1=m0;经过n-2次循环,就可以得到第n个数。
第二种,python中可以用一种更简单的方法,多元赋值,这时,只需两个变量,m1,m2
m1,m2=m2,m1+m2
3.汉诺塔盘子的问题(递归)
三个塔的名字分别为:起始塔、中间塔、目的塔
分三步;
第一步:
n-1个盘子从起始塔借助目的塔移动到中间塔
第二步:
第n个盘子从起始塔移动到目的塔(一般需要打印出来)
第三步:
n-1个盘子从中间塔借助起始塔移动到目的塔
相关文章推荐
- C#递归算法之分而治之策略
- 有关数据库SQL递归查询在不同数据库中的实现方法
- C#中的递归APS和CPS模式详解
- WinForm实现按名称递归查找控件的方法
- C#递归方法实现无限级分类显示效果实例
- 使用SqlServer CTE递归查询处理树、图和层次结构
- C#递归算法之打靶算法分析
- C#中的尾递归与Continuation详解
- C#递归实现显示文件夹及所有文件并计算其大小的方法
- php递归创建目录的方法
- PHP递归创建多级目录
- Javascript递归打印Document层次关系实例分析
- C#递归算法寻找数组中第K大的数
- C++使用递归方法求n阶勒让德多项式完整实例
- C#用递归算法解决经典背包问题
- oracle 使用递归的性能提示测试对比
- 使用curl递归下载软件脚本分享
- Perl脚本实现递归遍历目录下的文件
- JavaScript的递归之递归与循环示例介绍
- C# 递归查找树状目录实现方法