奇安信2020春招校招测试工程师笔试编程题

Theodosia ·
更新时间:2024-09-21
· 657 次阅读

奇安信2020春招校招测试工程师笔试编程题

1、小明有N元钱去药店买口罩,药店有6个品牌的口罩,A品牌2元/2个,B品牌2元/3个,C品牌3元/1个,D品牌1元/5个,E品牌5元/4个,F品牌2元/3个,由于限购,每个品牌的口罩只能购买一份,小明最多购买几个?

1<N<15,例如输入9,输出13

解:从数学题的角度来讲,要买到最多口罩,就从最便宜的开始买,直到没钱为止。

A:1元/个,B/F:0.66元/个,C:3元/个,D:0.25元/个,E:1.25/个

那么购买的顺序为DBFAEC

所以输入9时,可以购买5+3+3+2=13

import sys def buy(money): sum = 0 if money > 1 and money = 1: sum += 5 money -= 1 if money >= 2: sum += 3 money -= 2 if money >= 2: sum += 3 money -= 2 if money >= 2: sum += 2 money -= 2 if money >= 5: sum += 4 money -= 5 if money >= 3: sum += 1 money -=3 return sum money = int(sys.stdin.readline()) #for line in sys.stdin: # money = int(line) print(buy(money))

当时在做输入输出的时候愣是搞了一会儿才明白他要求的代码规范,之前都是直接用input_,我只是个刚学python的小菜鸡。

后来查了一下,input()方法和stdin()实现的功能是基本一致的,input()可以直接在括号内填写文字~

2、第二题题目太长了,就简单的描述一下。
在这里插入图片描述
如图中的三角型,S1=1+2+3+4,S2=4+5+6+7,S3=7+8+9+1

要求输入9个数字,判断这个三角形是不是等边三角型,是输出yes,不是输出no。

例子:

​ 输入:3,4,8,5,2,6,7,1,9

​ 输出:yes

import sys def panduan(list_shuru): s1 = int(list_shuru[1]) + int(list_shuru[2]) + int(list_shuru[3]) + int(list_shuru[0]) s2 = int(list_shuru[4]) + int(list_shuru[5]) + int(list_shuru[3]) + int(list_shuru[6]) s3 = int(list_shuru[7]) + int(list_shuru[8]) + int(list_shuru[0]) + int(list_shuru[6]) if s1 == s2 == s3 : return 'yes' else: return 'no' for line in sys.stdin: list_shuru = line.split(',') #输入数字,以逗号隔开 print(panduan(list_shuru))
作者:圆圆的脑袋有很多问号



校招 安信 测试工程师 工程 测试

需要 登录 后方可回复, 如果你还没有账号请 注册新账号
相关文章