业务分析编程基础知识

1)国际象棋的车在水平或垂直方向上移动。给出棋盘上两个不同的格子,判断车是否能在一次移动中从第一个格子移动到第二个格子。程序收到四个数字,每个数字从1到8,首先给出第一个方格的列号和行号,然后是第二个方格的列号和行号。如果车可以从第一个位置移动到第二个位置,程序应该输出 "是",否则输出 "否"。

2)如图,计算函数F(n)的算法由以下关系给出。
函数F(99)+F(100)的值是多少?
3)找到最大元素的第一次出现的索引。输出两个数字:包含二维数组中最大元素的行和列的数字。如果有多个这样的元素,就打印行号较小的那个,如果行号相等,就打印列号较小的那个。

该程序接收到大小为n和m的数组作为输入,然后是n行,每行m个数字。

4)如图
5)创建一个文件,并将公司员工的信息写入其中。阅读该文件,了解有多少员工超过40岁。
6) 该商店出售的油漆有15公斤、17公斤和21公斤的盒子。
你必须在不开箱的情况下准确买到185公斤的油漆。有多少种方法可以做到这一点?
7) 给出一个20个数字的清单。把一个三连号称为三个连续的数字。确定有多少个这样的三角形可以成为一个直角三角形的边。如果没有这样的三元组,打印0。

img

第一题:

def move(cube:list)->bool:
    if (cube[0],cube[1])==(cube[2],cube[3]):return False # 同一个格子
    if cube[0] == cube[2] or cube[1] == cube[3]:return True # 同行或同列
    return False
cube = list(map(int,input().split()))
print('是') if move(cube) else print('否')

第二题:

def fun(n):
    if n<=5:return 2*n
    if n>5:
        return fun(n-2)+3*fun(n/2)+n if n%2==0 else fun(n-1)+fun(n-2)+fun(n-3)
print(fun(99)+fun(100))

第三题:

n, m = eval(input())
res = []
for i in range(n):
    res += list(map(int,input().split()))
loc = res.index(max(res))
print(1+loc//m, 1+loc%m)

运行结果:

(5,5)
1 2 3 4 5
2 3 4 5 6
5 6 7 8 9
7 8 9 1 2
9 8 7 6 5
3 5

第四题:

def fun(n):
    return 1 if n==1 else n*fun(n-1)
n = int(input())
sumtotal = 0
for i in range(n):
    sumtotal += fun(i+1)
print(sumtotal)

第五题:

s = ['张三 男 30','李四 女 40','王五 男 50']
with open(r'员工信息.txt','w') as f:
    f.write('\n'.join(s))
with open(r'员工信息.txt','r') as f:
    p = f.readlines()
userinfo = [i.strip().split() for i in p]
print(len([i for i in userinfo if int(i[2])>40]))

第六题:

res=[]
for x in range(185//15+1):
    for y in range(185//17+1):
        for z in range(185//21+1):
            if 15*x + 17*y + 21*z == 185:
                res.append([x,y,z])
                break
print(f'有{len(res)}种方法可以做到:')
for i in res:
    print(f'{i[0]}箱15公斤、{i[1]}箱17公斤、{i[2]}箱21公斤')

运行结果:

有5种方法可以做到:
0箱15公斤、1箱17公斤、8箱21公斤
1箱15公斤、10箱17公斤、0箱21公斤
3箱15公斤、7箱17公斤、1箱21公斤
5箱15公斤、4箱17公斤、2箱21公斤

第七题:

nums = list(map(int,input().split()))
res = []
for i in range(len(nums)-2):
    m = [nums[i],nums[i+1],nums[i+2]]
    l = sorted(m)
    if l[0]**2+l[1]**2==l[2]**2:
        res.append(m)
print(len(res))

运行结果:

5 4 3 5 4 3
[5, 4, 3] [4, 3, 5] [3, 5, 4] [5, 4, 3]