试题 基础练习 回文数
提交此题 评测记录
资源限制
内存限制:512.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s
问题描述
1221是一个非常特殊的数,它从左边读和从右边读是一样的,编程求所有这样的四位十进制数。
输出格式
按从小到大的顺序输出满足条件的四位十进制数。
题目分析:
根据题目意思我们只需要将数据范围指定为1000~9999即可,然后利用for循环遍历这些数据,对这些数据进行“回文数”条件判断即可。回文数的判断思路为:将遍历得到的数字转换为字符串格式这样便于对数据进行切片比较。将转换得到的字符串,切片取出前两位和倒序取出末尾两位进行比较即可判断该数据是否为回文数。
具体实现如下:
def cycle_number():for number in range(1000,9999+1): #划定范围str_number=str(number) #将数据转换为字符串if str_number[:2]==str_number[-1:-3:-1]: #切片字符串的前两位和倒序切片末尾两位进行比较print(number)
cycle_number()
通过截图:
试题 基础练习 特殊的数字
提交此题 评测记录
资源限制
内存限制:512.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s
问题描述
153是一个非常特殊的数,它等于它的每位数字的立方和,即153=1*1*1+5*5*5+3*3*3。编程求所有满足这种条件的三位十进制数。
输出格式
按从小到大的顺序输出满足条件的三位十进制数,每个数占一行。
题目分析
根据题目的描述我们可以将数据的范围规定在100~999之间。通过利用for循环遍历这个范围的数据,然后将这个数据的拆分成多个单独的数字,然后将这些单独的数字进行立方再求和,将求和得到的结果与拆分前的数据进行比较,如果相等,满足“特殊数字”要求,即输出该数据。
具体实现如下:
def square_number(x):x=int(x) return x*x*x #返回单独数字的立方运算结果def specific_number():for number in range(100,999+1): #利用for循环遍历指定范围的数据str_number=str(number) #将数据转换为字符型,便于map函数操作result=sum(list(map(square_number,str_number))) #将可迭代对象字符串,传入map函数进行立方求和运算if result==number: #满足条件就输出结果print(number)specific_number()
试题 基础练习 查找整数
提交此题 评测记录
资源限制
内存限制:256.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s
问题描述
给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个。
输入格式
第一行包含一个整数n。
第二行包含n个非负整数,为给定的数列,数列中的每个数都不大于10000。
第三行包含一个整数a,为待查找的数。
输出格式
如果a在数列中出现了,输出它第一次出现的位置(位置从1开始编号),否则输出-1。
样例输入
6
1 9 4 8 3 9
9
样例输出
2
数据规模与约定
1 <= n <= 1000。
题目分析:
按照题目的要求,设定好程序的输入格式后,将输入的数列使用split函数按照空格划分转换为列表,然后使用if语句判断目标数字是否在列表中,如果目标元素在列表中,使用列表的内置函数index()快速找出目标数字对应的索引。但是需要注意:Python中列表的索引是从0开始的。
具体实现如下:
def search_number():n=int(input()) list_number=input().split(" ") #按照空格将输入数据转换为列表target_number=input()if target_number in list_number: #使用关键字“in”判断目标数字是否在列表中print(list_number.index(target_number)+1) #输出目标数字在列表中的索引值else:print(-1) #如果目标数字没有在列表中,就输出-1
search_number()