2021-02-19

蓝桥杯python组赛题-- 基础练习


题目一–十六进制转八进制

问题描述
  给定n个十六进制正整数,输出它们对应的八进制数。

输入格式
  输入的第一行为一个正整数n (1<=n<=10)。
  接下来n行,每行一个由09、大写字母AF组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。

输出格式
  输出n行,每行为输入对应的八进制正整数。

【注意】
  输入的十六进制数不会有前导0,比如012A。
  输出的八进制数也不能有前导0。

样例输入
  2
  39
  123ABC

样例输出
  71
  4435274

【提示】
  先将十六进制数转换成某进制数,再由某进制数转换成八进制。


代码一

# 二进制:bin 八进制:oct 十进制:int 十六:hex
def main():
    n = int(input())
    l = []
    for i in range(n):
        l.append(input())
    for j in l: 
        print('{:o}'.format(int(('0x'+j),base = 16)))        
main()

总结

进制转化问题:二进制:bin 八进制:oct 十进制:int 十六:hex
详见:https://blog.csdn.net/sea2017/article/details/88554738?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control&dist_request_id=6d524c1c-a362-455e-8f8b-aa0b71e30e27&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control

题目2-十六进制转十进制

问题描述
  从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
  注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
  
样例输入
FFFF

样例输出
65535


代码2

# 二进制:bin 八进制:oct 十进制:int 十六:hex
def main():  
    l = input()
    print(int(l,base = 16))
        
main()

题目3-十进制转十六进制

问题描述
  十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满16进1,所以十进制数16在十六进制中是10,而十进制的17在十六进制中是11,以此类推,十进制的30在十六进制中是1E。
  给出一个非负整数,将它表示成十六进制的形式。
  
输入格式
  输入包含一个非负整数a,表示要转换的数。0<=a<=2147483647
  
输出格式
  输出这个整数的16进制表示
  
样例输入
30

样例输出
1E


代码3

# 二进制:bin 八进制:oct 十进制:int 十六:hex 
def main():  
    l = input()
    print('{:X}'.format(int(l)))
        
main()

注意事项

  • print(’{:X}’.format(int(l)))中 :X 一定要是大写,输出来的30 对应的1E 才是大写,如果是 :x 输出结果便是小写1e

题目4-特殊的数字

问题描述
  153是一个非常特殊的数,它等于它的每位数字的立方和,即153=111+555+333。编程求所有满足这种条件的三位十进制数。
输出格式
  
输出格式
  按从小到大的顺序输出满足条件的三位十进制数,每个数占一行。


代码4

def num():
    result = []
    for i in range(100,1000):       
        g = int(i%10)  
        s = int(((i-g)/10)%10)
        b = int(((((i-g)/10)-s)/10)%10)
        count = int(g*g*g+s*s*s+b*b*b)    
        if int(count) == int(i):
            result.append(count)
    for j in result:
        print(j)
    
num()

题目5-查找整数

问题描述
 给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个。
输入格式
第一行包含一个整数n。

第二行包含n个非负整数,为给定的数列,数列中的每个数都不大于10000。

第三行包含一个整数a,为待查找的数。
输出格式
  如果a在数列中出现了,输出它第一次出现的位置(位置从1开始编号),否则输出-1。
  
样例输入
6
1 9 4 8 3 9
9
样例输出
2
数据规模与约定
1 <= n <= 1000。


代码5

def main():
    x = int(input())
    y = input().split()
    z = int(input())
    flag = -1
    for i in range(len(y)):
        if z == int(y[i]):
            print(i+1)
            flag = 2
            break
    if flag == -1:
        print(-1)           
main()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值