- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
一、简答题
1、36.时钟问题
小明上学时间是8:00,放学时间不固定,他很想知道从上学到放学,时钟的时针
、分针和秒针一共有多少次指向了3点钟的位置。他尝试编写了如下程序,请你完
善划线处的代码,计算出在h点s分放学时,三个时针分别经过3点位置的次数,用
一个元组表示各指针经过3点位置的次数(时针次数,分针次数,秒针次数)
,并输出。
deffn(h1,m1,h2,m2):
if(h215):
①
else:
hc=1
th=②
if(③):
mc=th+1
else:
mc=th
sc=④
return(hc,mc,sc)
h=int(input(h=))
s=int(input(s=))
print(fn(8,0,h,s))
2、37.对称字符串
对称字符串是指从左往右读和从右往左读是一样的字符串。小方同学学习了递归思
想后,利用递归思想来解决对称问题。在一串包含大小写字符和数字等字符组成的
字符串中,他首先筛选出只包含大小写字符组成的字符串,然后判断该字符串是否
是对称字符串。他编写的代码如下,请完善划线处的代码。
defgetzf(yw):#筛选出原始字符串yw中大写小写字符组成的字符串
rst=
foriinyw:
ifz=i=aorZ=i=A:
①
returnrst
defnxzf(data):#生成字符串data的逆序字符串
iflen(data)==1:
returndata[0]
return②
yw=input(请输入字符串)
yw=getzf(yw)
nxzfc=nxzf(yw)
if③:
print(原字符串中存在对称字符串,yw)
else:
print(不存在对称字符串)
解析:
首先,第一个函数getzf是用于筛选出原始字符串中只包含大小写字符的字符串。在
遍历原始字符串时,如果字符是大写或小写字母,就将其添加到结果字符串rst中。
因此,在①处,需要将满足条件的字符i添加到rst中。
第二个函数nxzf是用于生成字符串的逆序字符串。如果字符串只有一个字符,就直
接返回该字符;否则,递归调用nxzf函数,将除了第一个字符以外的部分进行逆序
,然后再将第一个字符添加到逆序字符串的后面。因此,在②处,需要返回nxzf(d
ata[1:])+data[0],即将除第一个字符外的部分逆序后再加上第一个字符。
最后,在主程序中,将筛选后的字符串与它的逆序字符串进行比较,如果相等则说
明该字符串是对称的,否则不是。因此,在③处需要判断yw==nxzfc是否成立。
3、38.角谷猜想
所谓角谷猜想,是指对于任意一个正整数,如果是奇数,则乘3加1,如果是偶数,
则除以2,得到的结果再按照上述规则重复处理,最终总能够得到1。如,假定初始
整数为5,计算过程分别为16、8、4、2、1。程序要求输入一个整数,求经过多少
次可得到自然数1。根据题意,请完善划线处的代码。
deffun(n,cnt):
if①:
print(cnt)
return
else:
ifn%2==0:
n//=2
②
else:
③
fun(n,cnt+1)
fun(5,④)
解析:
这是一个关于角谷猜想的编程题目。根据题目描述,我们需要完善一个递归函数,
该函数接受一个整数n和一个计数器cnt,当n变为1时,打印计数器并返回,否则根
据n的奇偶性进行相应的操作并递归调用函数。
对于划线处的代码解析如下:
①ifn==
1::这是判断终止条件,当n变为1时,打印计数器并返回。因为题目要求得到自
然数1时的计算次数,所以这里需要判断n是否等于1。
②fun(n,
cnt):这是递归调用函数的部分,当n为偶数时,将n除以2后,需要再次调用函数
并更新计数器。
③else:n*=3+
1:这是处理奇数n的部分,当n为奇数时,将其乘以3再加1后,再次递归调用函数
。这是根据角谷猜想的规则进行的操作。
④fun(5,
0):这是初始调用函数的部分,输入整数为5,初始计数器为0。因为初始时还没
有计算次数,所以计数器初始值为0。
原创力文档


文档评论(0)