python题目集3(欢迎讨论!有借鉴内容,如侵立删)

7-2 6-11.十进制转十六进制 (10 分)

这是一个编程题模板。请在这里写题目描述。例如:本题目要求读入2个整数A和B,然后输出它们的和。

输入格式:
请在这里写输入格式。例如:输入在一行中给出2个绝对值不超过1000的整数A和B。

输出格式:
请在这里描述输出格式。例如:对每一组输入,在一行中输出A+B的值。

输入样例:
在这里给出一组输入。例如:

31

输出样例:
在这里给出相应的输出。例如:

31D is 1FH

我的代码:

import math
x=int(input())
k=list(hex(x))
del k[0]
del k[0]
lenn=len(k)
for i in range(lenn):
    if k[i].isalpha():
        k[i]=k[i].upper()
k=''.join(k)
print('{}D is {}H'.format(x,k))


7-3 jmu-python-组合数 (15 分)

本题要求编写程序,根据公式 11.jpg 算出从n个不同元素中取出m个元素(m≤n)的组合数。
11
输入格式:
输入在一行中给出两个正整数m和n,以空格分隔。

如果输入数据负数,能输出提示不能负数
如果输入数据出发非法数据,能输出提示请输入数值 (数值异常处理)
输出格式:
按照格式result = 组合数计算结果输出。

输入样例:

2 7

输出样例:

result=21.00

我的代码:

def judge(m):
    sum = 1
    for i in range(1, m+1):
        sum *= i
    return sum
 
def cal(n, m):
    now_n = judge(n)
    now_m = judge(m)
    now_n_m = judge(n-m)
    return now_n/(now_m*now_n_m)
 
 
m, n = list(input().split())
flag = True
flag2 = True
try:
    m, n = int(m), int(n)
except:
    print("请输入数值")
    flag = False
if flag:
    if m > 0 and n > 0:
        print("result={:.2f}".format(cal(n,m)))
    else:
        print("不能负数")

7-6 号码牌的制作 (10 分)

打印一个号码牌。号码牌由边框和号码构成,组成边框的字符分为角落字符,水平字符和垂直字符。

输入格式:
输入一个字符(如:±|2008161876)串,字符串的前三个字符分别代表组成边框的角落字符,水平字符和垂直字符,从第四个字符开始到最后表示号码数字。

输出格式:
打印出由边框包围的号码。如:

号码牌1.JPG

输入样例:
在这里给出一组输入。例如:

#=$2020

输出样例:
在这里给出相应的输出。例如:

#====#
$2020$
#====#

输入样例:
在这里给出一组输入。例如:

+-*20191234

输出样例:
在这里给出相应的输出。例如:

+--------+
*20191234*
+--------+

我的代码:

x=input()
x=list(x)
lenn=len(x)-3

print(x[0],end='')
for i in range(lenn):
    print(x[1],end='')
print(x[0],end='')
print('')
print(x[2],end='')
for i in range(3,lenn+3):
    print(x[i],end='')
print(x[2],end='')
print('')
print(x[0],end='')
for i in range(lenn):
    print(x[1],end='')
print(x[0],end='')

7-8 (样卷)输出一个 n 阶的方阵 (15 分)

读入 1 个正整数 n(3≤n<9)和 1 个整数 digit(2<=digit<=9), 请输出一个 n 阶的方阵, 该矩阵所有边上的元素都是 digit, 其它元素都是 digit-1.

输入格式:
在一行中输入n和digt

输出格式:
输出n 阶的方阵

输入样例:
在这里给出一组输入。例如:

4   2

输出样例:
在这里给出相应的输出。例如:

2 2 2 2 
2 1 1 2 
2 1 1 2 
2 2 2 2 

我的代码:

a=input().split()
num=int(a[0])

for i in range(num):
    print(a[1],end=' ')
print('')

for i in range(1,num-1):
    print(a[1],end=' ')
    for i in range(1,num-1):
        print(str(int(a[1])-1),end=' ')
    print(a[1],end=' ')
    print('')

for i in range(num):
    print(a[1],end=' ')
print('')

7-9 (样卷)列表元素的个数加权和(2) (20 分)

输入一个嵌套列表,嵌套层次不超过10,根据层次,求列表元素的加权个数和。无论输入嵌套列表实际层次,第一层每个元素算10个元素,第二层每个元素算9个元素,第三层每个元素算8个元素,第四层每个元素算7个元素,…第十层每个元素算一个元素。 如:[1,2,[3,4,[5,6],7],8]
计算方法:110+110+19+19+18+18+19+110=73

输入格式:
在一行中输入列表

输出格式:
在一行中输出元素的个数加权和

输入样例:
在这里给出一组输入。例如:

[1,2,[3,4,[5,6],7],8]

输出样例:
在这里给出相应的输出。例如:

73

我的代码:

a=input()
n=11
ans=0
backup=a
a=a.replace('[','')
a=a.replace(']','')
nums=a.split(',')
b=backup
j=0
for i in range(len(b)):
    if b[i]=='[':
        n-=1
    elif b[i]==']':
        n+=1
    elif b[i]==',':
        continue
    elif b[i+1]==',' or b[i+1]==']':
        ans+=n
        j+=1
print(ans)

7-10 求矩阵鞍点的个数 (15 分)

一个矩阵元素的“鞍点”是指该位置上的元素值在该行上最大、在该列上最小。

本题要求编写程序,求一个给定的n阶方阵的鞍点。

输入格式: 输入第一行给出一个正整数n(1≤n≤6)。随后n行,每行给出n个整数,其间以空格分隔。

输出格式: 鞍点的个数

输入样例1:

4  
1 7 4 1   
4 8 3 6
1 6 1 2
0 7 8 9

输出样例1:

1

输入样例2:

2
1 7
4 1

输出样例2:

0

输入样例3:

3
6    6    6
6    6    6
6    6    6

输出样例3:

9

我的代码:

n=int(input())
a=[]
c1=[]
c2=[]
for i in range(n):
    b=input().split()
    a.append(b)
for i in range(n):
    maxa=max(int(a[i][j]) for j in range(n))
    mina=min(int(a[k][i]) for k in range(n))
    c1+=[(i,j) for j in range(n) if int(a[i][j])==maxa]
    c2+=[(k,i) for k in range(n) if int(a[k][i])==mina]
print(len(set(c1)&set(c2)))

你可能感兴趣的:(Python)