自学python差不多两个星期了,找点题目练练手顺便记录一下,希望大佬们多多指点 回文数定义即为数字翻转后仍为原来的数字 回文数这类题感觉还挺常见,这里给出的是最基本的 这一题想了好长时间,尝试了许多方法,一开始我的思路过于麻烦,写了一堆函数去判断每一个L,R的位置,后来查阅了一些资料,反应过来,可以利用两次循环遍历,第一遍将R右边的.全部转换为R,并构造一个列表储存每一次R出现的次数。第二遍循环从最后一位开始,通过中间量temp来判断是向左还是向右倾倒。顺带一提我这里用的是PyCharm 这一题应该是这里面最难的了。 本人刚开始学习Python或许有各种各样的低级错误,望各位大佬海涵并指出问题,如果有好的解题思路或者疑问欢迎在评论区提出,感谢。
前言
题目
1 判断一个整形数是否为回文数
因为在学校学过c++,所以这类题型还是比较简单的。循环取余就可以做到最基本的回文数判断,这里就不过多赘述了num = int(input("输入一个十进制整数:")) s = 0 n = num while num > 0 : s = s * 10 + num % 10 num = num // 10 if(s==n): print("YES") else: print("NO")
2 被三整除
题目描述
输入包括两个整数l和r(1 <= l <= r <= 1e9), 表示要求解的区间两端。
输出要求
输出一个整数, 表示区间内能被3整除的数字个数。
众所周知能被3整除的数,各位数字相加能被3整除根据这个原理可以进行判断def fate(n): # 编写函数 a=0 while n > 0 : #获取各位数字之和 a=n%10+a n=(n-a)//10 return (a) num_first = int(input("输入一个数字:")) num_end = int(input("请输入最后一个数字:")) for i in range (num_first,num_end): # 循环 if(fate(i)%3==0): print(i)
3.骨牌推到
输入描述
输入为一个长度不超过1000的,仅包含‘L’,‘R’,‘.’的字符串
输出描述
根据输入,输出一个仅由‘L’,‘R’,‘.’组成的结果字符串
示例
输入
.L.R...LR....L.
输出
LL.RR.LLRRRLLL.
bone=list(input("请输入仅包涵‘L’,‘R’,‘.’的字符:")) power=[]# 储存 temp=0# 用于判断的量 power=[0 for i in range(0,len(bone))] # 第一次遍历 for i in range (0,len(bone)): if(bone[i-1]=='R' and bone[i]=='.'):#R右方相邻的.转换成R bone[i]='R' power[i]=power[i-1]+1# 记录R的次数 print(bone)# 为方便观看我在这里输出一下 print(power) # 第二次遍历 for i in range (len(bone)-2,0,-1): if(bone[i+1]!='L'): continue temp=power[i+1]+1# 循环一次给temp赋值一次 if(bone[i]=='.' or temp < power[i]):# 如果此时temp小于power[i]则为L bone[i]='L' elif(bone[i]=='R' and temp == power[i]):# 如果此时temp恰好与power[i]相等则为. bone[i]='.' print(bone)
结语
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算