蓝桥杯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()