蓝桥杯基础练习详细讲解二(具体代码、解题思路、Python)

 试题 基础练习 回文数

提交此题   评测记录  

资源限制

内存限制: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()

相关推荐

  1. 基础算法()#

    2024-03-25 07:44:01       23 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-25 07:44:01       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-25 07:44:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-25 07:44:01       20 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-25 07:44:01       20 阅读

热门阅读

  1. TS快速入门笔记-第一章

    2024-03-25 07:44:01       16 阅读
  2. 3月23日,每日信息差

    2024-03-25 07:44:01       16 阅读
  3. mac安装openresty

    2024-03-25 07:44:01       18 阅读
  4. conda常用命令

    2024-03-25 07:44:01       17 阅读
  5. 【生产力】Mac 窗口布局工具 Magnet

    2024-03-25 07:44:01       16 阅读
  6. MacOS安装Homebrew教程

    2024-03-25 07:44:01       15 阅读
  7. 前端面试集中复习 - http篇

    2024-03-25 07:44:01       19 阅读
  8. web前端(3.16笔记 html 标签)

    2024-03-25 07:44:01       18 阅读
  9. PHP之CURL和Socket

    2024-03-25 07:44:01       19 阅读