首页 > 编程语言 >Python 五级编程题

Python 五级编程题

时间:2023-10-17 23:35:08浏览次数:38  
标签:Python 31 编程 -- int hannota year print 五级

python_五级_中国电子学会_2021年_真题_汉诺塔

汉诺塔是一道非常经典的题,12月5日悦儿姐在考python五级时又遇见它了,在这里给大家分享一下。

题目:设计一个算法,汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘,大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。有三个单字符串和一个整数。三个字符表示三个杆子的编号,整数为盘子的数目。

根据上述计算规则,补全下列代码。

函数名:hannota(n,a,b,c)

参数表:n--正整数表示盘子数,a--a杆子,b--b杆子,c--c杆子。

返回值:移动路径。

示例:n=3,返回:A-->C

A-->B

C-->B

A-->C

B-->A

B-->C

A-->C

代码:

    def hannota(n,a,b,c):
        if n==1:
            print(a,'-->',c)
            return None
        if n==2:
            print(a,'-->',b)
            print(①)
            print(b,'-->',c)
            return None
        hannota(②)
        print(a,'-->',c)
        hannota(③)
    a='A'
    b='B'
    c='C'
    n=int(input('请输入黄金圆盘数量n:'))
    hannota(n,a,b,c)

好啦,题目说完了,我们来讲怎么填这些东东。真的是,填空题真的是嗷嗷烦人,还不如我这位原创选手自己写呢!总是要我们理解别人的意思,真的好难。

该抱怨的抱怨完了,我们来回归正题......这类填空题主要要做到几点:1.审题   2.想自己的思路  3.读别人的思路   4.填空

这道题和我们之前的数麦子那题特别像,每后一步移动的步数也是前一步的两倍,不信的话可以去4399小游戏里玩一玩、感受感受。总结如下规律:要移动的那片圆盘对应的那根柱子上的圆盘数如果是奇数,那么圆盘直接移动到终点(c柱子)。如果是偶数,那就先放在空的那根柱子上,再按照奇数的方法做,最后把那片圆片移过去。

so...understand?不懂看程序,看着看着就会懂的:

    def hannota(n,a,b,c):  # 定义函数,参数代表的是什么在前面的参数表中看
        if n==1:  # 只剩一步
            print(a,'-->',c)
            return None
        if n==2:  # 还剩两步
            print(a,'-->',b)  # 先借助b柱子
            print(a,'-->',c)  # 再到终点
            print(b,'-->',c)  # 把b柱上快被忘掉的东东拿回来
            return None
        hannota(n-1,a,c,b)  # 把a柱上的借助c柱放在b柱上
        print(a,'-->',c)  # a上的移过去了
        hannota(n-1,b,a,c)  # 把b柱上的移到c柱上
    a='A'
    b='B'
    c='C'
    n=int(input('请输入黄金圆盘数量n:'))
    hannota(n,a,b,c)

好啦,有什么缺点放在评论区,我在这里,等你哦!
————————————————
原文链接:https://blog.csdn.net/weixin_46710559/article/details/121750024

 

 

 

 

 

 

 

 

 https://blog.51cto.com/myunix/2399892

 

python_五级_中国电子学会_真题_计算天数

话不多说我们直接单刀直入进入题目:

输入年月日,计算这一天是这一年的第几天,编写自定义函数完成程序功能,完善程序代码。——根据年月日,计算这一天是这一年的第几天。函数名   def getDays(year)。      参数       year:表示日期,字符串类型如:20211201。      返回值     整数,表示这一天是这一年的第几天。

代码:

    def getDays(year):
        s=0
        y=int(year[:4])
        m=int(year[4:6])
        d=int(year[6:8])
        mothdays=(31,28,31,30,31,30,31,31,30,31,30,31)
        for i in range(①):
            s=s+②
        if (y%4==0 and y%100!=0 or y%400==0) and ③:
            s=s+1
        s=s+d
        return s
    year='20211201'
    theday=④
    print(theday)

好,开始讲解。整个程序写的还是不错的,只不过有些地方有点让悦儿姐匪夷所思。比如③.....还记得我们填空题的步骤吗?1.审题   2.想自己的思路   3.读别人的思路    4.填空

这段代码很好读,我们直接填空去。

    def getDays(year):  # 定义函数
        s=0  # 你们要学好英语啊,s就是sum的简称,sum你别告诉我你不知道,就是和。
        y=int(year[:4])  #   y   m  z
        m=int(year[4:6])  # 2021|12|01
        d=int(year[6:8])
        monthdays=(31,28,31,30,31,30,31,31,30,31,30,31)  # 月份列表
        for i in range(m-1):  # 求月(最后一个月份不要加,因为没有完全过完)
            s=s+monthdays[i]
        if (y%4==0 and y%100!=0 or y%400==0) and True:  # 求年是否是闰年。四年一闰,百年不闰,四百年再闰。前一个空好像都包括了,后一个小女就瞎填了,如有更好的想法,欢迎来找我。
            s=s+1
        s=s+d  # 求日
        return s
    year='20211201'
    theday=getDays(year)
    print(theday)

Good bey

标签:Python,31,编程,--,int,hannota,year,print,五级
From: https://www.cnblogs.com/emanlee/p/16125120.html

相关文章

  • python报错解决-ValueError: Trusted host URL must include a host part: '#!
    删掉#后面的字符参考:pipinstall总是报错:ValueError:TrustedhostURLmustincludeahostpart:‘#‘-CSDN博客......
  • python12
    1.列表(list)列表是一个有序且可变的容器,在里面可存放多个类型的元素。1.1定义use_list=["天","地","人"]number_list=[98,66,55]data_list=[1,True,"Alex"]use_list=[]use_list.append("铁锤")use_list.append(123)use_list.append(True)p......
  • 【Android面试】2023最新面试专题七:Java并发编程(二)
    6 ReentrantLock的实现原理这道题想考察什么?是否了解并发相关的理论知识是否对于锁机制有个全面的理论认知是否对于AQS原理有自己的理解考察的知识点锁的分类(公平锁、重入锁、重力度锁等等)ReentrantLock实现方式与Synchronized实现方式的异同点考生应该如何回答Java中的大部分同步......
  • 并发编程1
    并发编程进程基础(操作系统中的概念)进程它是操作系统总最重要的概念,也是最基本的一个概念线程也是操作系统中得一个很重要的概念进程和线程都是有操作系统来调度使用的,我们程序员是不能控制的,这里就设计到调度算法什么是进程?线程?什么是程序?#进程和程序是两码事、完......
  • 循环语法之编程模拟音乐播放器
    以音乐播放器软件的界面作为导入提问学生:如果需要自己生成一个歌单,在歌单中有哪些较为重要的组成部分?提取关键元素:歌曲名;歌手;歌曲顺序编程实现一:利用顺序结构实现一个简单的歌单回顾字符串类型与print()函数,实现下列代码songname1="画"songname2="借我"songname3="......
  • RESTful编程到底是什么?
    内容来自DOChttps://q.houxu6.top/?s=RESTful编程到底是什么?RESTful编程到底是什么?RESTful编程到底是什么?一种称为REST(表述性状态转移)的架构风格主张Web应用程序应该像最初所设想的那样使用HTTP。查找应该使用GET请求。PUT、POST和DELETE请求分别用于变更、创建和删除。R......
  • # yyds干货盘点 # Python自动化办公之PDF版本发票识别并提取关键信息实战教程(上篇)
    大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Python自动化办公发票数据处理的问题,一起来看看吧。二、实现过程这个问题在实际工作中还是非常常见的,实用性和通用性都比较强,历史文章中其实也有写过几篇文章,这里继续给大家敲敲脑壳。不过这里还涉及到一个......
  • 代码随想训练营第四天(Python)| 24. 两两交换链表中的节点、19.删除链表的倒数第N个节点
    两两交换链表中的节点关键点:涉及到头节点变动的都使用虚拟节点。画图找出交换节点指向的顺序和退出循环的条件。1、迭代法classSolution:defswapPairs(self,head:Optional[ListNode])->Optional[ListNode]:dummy_node=ListNode(next=head)cur=......
  • Python 当前工作路径、当前文件路径
    在BCP源码中,涉及到路径问题,先描述下问题,我运行的文件在BCP/code/LA_BCP_train.py,我希望在索引的时候使用的是BCP/code这个地址,但是实际上是BCP/,这里涉及Python的当前文件路径和当前工作路径。当前工作路径是BCP/,相对路径是基于这个路径,可以通过os.path.getcwd()获取当前文件路......
  • Python随机波动性SV模型:贝叶斯推断马尔可夫链蒙特卡洛MCMC分析英镑/美元汇率时间序列
    全文链接:https://tecdat.cn/?p=33885原文出处:拓端数据部落公众号本文描述了帮助客户使用马尔可夫链蒙特卡洛(MCMC)方法通过贝叶斯方法估计基本的单变量随机波动模型,就像Kim等人(1998年)所做的那样。定义模型以及从条件后验中抽取样本的函数的代码也在Python脚本中提供。  ......