程式設計題目 泥塑課

2021-09-09 03:28:58 字數 3306 閱讀 5305

雖然不是難題,但是我這個菜鳥還是寫了三個小時。

題目:小公尺是乙個幼兒園老師,每學期的泥塑課上,她都會給每個學生發不超過250立方厘公尺的等量橡皮泥,教大家做泥塑。在上課過程中,她發現每個班都恰好有乙個小朋友會去搶另乙個小朋友的橡皮泥,於是她決定,在正式開始做泥塑前,讓大家把手裡的橡皮泥都捏成乙個立方體,並且測量手裡捏好的橡皮泥的長、寬和高。這樣,她就可以知道誰被誰搶了橡皮泥了。

小公尺老師在不同的學期可能會帶乙個班或者同時帶多個班,因此輸入資料可能有一組或者多組。每組輸入資料的第一行為乙個整數n,表示了這個班的小朋友數,之後n行每行包括了由空格分隔的三個整數和乙個字串,那個字串表示了小朋友的名字,前面三個整數則是這個學生手裡橡皮泥塊的長、寬、高資料。按照幼兒園的規定,每個班最多有9個小朋友,最少也要有2個小朋友,每個小朋友在學籍系統中的名稱不超過8個字元長。當出現乙個班級的小朋友數為-1時,表示沒有更多的班級了。

輸出行數與小公尺老師帶的班級數相同,形式為「x took clay from y.」,具體請參考樣例輸出。

解題**如下:

1

#coding: utf-8

2"""

3__title__ = '泥塑課'

4__mtime__ = '15/12/31'

5__author__ = 'xueweihan'67

"""8910

defget_input():

11"""

獲取控制台輸入的值

12"""

13 _input =raw_input()

14 _input =str_to_int(_input)

15return

_input

1617

18def

str_to_int(str):

19try:20

return

int(str)

21except

exception as e:

22return

str23

2425

defprint_format(max_person, min_person):

26print

'%s took clay from %s.

' %(max_person, min_person)

2728

29class

student(object):

30def

__init__

(self, name, volume):

31 self.name =name

32 self.volume =volume

3334

35def

handle(input_data):

36"""

處理邏輯

37"""38#

gruop_list 存放的是不同班級的list

39 group_list =

4041

#class_list 存放的是乙個班級中student的物件

42 class_list =

4344

#i_index 和 e_index用於把每個班級的資料分出來

45 i_index =0

46for fi_input_list in

input_data:

47if

isinstance(fi_input_list, int):

48 e_index = i_index + fi_input_list + 1

49else:50

#通過切片分出每個班級的資料(因為每個班級的第乙個資料都是總數,不需要分析,故+1)

51for i in input_data[i_index+1:e_index]:52#

分析每個同學的資料

53 student_data_list =[str_to_int(fi_person_data)

54for fi_person_data in i.split('')]

5556 volume = student_data_list[0] * student_data_list[1] * student_data_list[2]

57 name = student_data_list[3]

5859

60 studnet =student(name, volume)

6162

63if

class_list:

6465 i_index =e_index66#

當分析完乙個班的資料之後,需要重新把class_list清空

67 class_list =

6869

#找出每個班級中volume最大和最小的student物件

70for fi_group_list in

group_list:

71 max_num = max([fi_class_list.volume for fi_class_list in

fi_group_list])

72 min_num = min([fi_class_list.volume for fi_class_list in

fi_group_list])

73 max_obj = filter(lambda x :x.volume ==max_num, fi_group_list)[0]

74 min_obj = filter(lambda x :x.volume ==min_num, fi_group_list)[0]

75print_format(max_obj.name, min_obj.name)

7677

78def

main():

79 input_list =

80while 1:

81 _input =get_input()

82if

isinstance(_input, int):83#

當遇到-1時結束

84if _input <0:

85handle(input_list)

86break

8788

89 main()

簡單題 泥塑課

題面 小公尺是乙個幼兒園老師,每學期的泥塑課上,她都會給每個學生發不超過 250250 立方厘公尺的等量橡皮泥,教大家做泥塑。在上課過程中,她發現每個班都恰好有乙個小朋友會去搶另乙個小朋友的橡皮泥,於是她決定,在正式開始做泥塑前,讓大家把手裡的橡皮泥都捏成乙個立方體,並且測量手裡捏好的橡皮泥的長 寬...

第6題 泥塑課

小公尺是乙個幼兒園老師,每學期的泥塑課上,她都會給每個學生發不超過250立方厘公尺的等量橡皮泥,教大家做泥塑。在上課過程中,她發現每個班都恰好有乙個小朋友會去搶另乙個小朋友的橡皮泥,於是她決定,在正式開始做泥塑前,讓大家把手裡的橡皮泥都捏成乙個立方體,並且測量手裡捏好的橡皮泥的長 寬和高。這樣,她就...

計蒜客 泥塑課

小公尺是乙個幼兒園老師,每學期的泥塑課上,她都會給每個學生發不超過250立方厘公尺的等量橡皮泥,教大家做泥塑。在上課過程中,她發現每個班都恰好有乙個小朋友會去搶另乙個小朋友的橡皮泥,於是她決定,在正式開始做泥塑前,讓大家把手裡的橡皮泥都捏成乙個立方體,並且測量手裡捏好的橡皮泥的長 寬和高。這樣,她就...