"""
描述:給乙個整數陣列num, 和乙個鎮整數k, 能否把陣列num切成k個子集,且各個子集的和相等,返回布林型別
輸入輸出:
輸入:乙個整數陣列num和乙個正整數k
輸出:返回true或者false,bool型別
樣例: 輸入:
[4,3,2,3,5,2,1];4
輸出:true
解釋:可以分解為4個子集,他們的和都是5
"""import sys
deffind_value
(num, value)
:for idx, data in
enumerate
(num)
:if data<=value:
num = num[
:idx]
+ num[idx+1:
]return value-data, num,
true
return value, num,
false
defcheck_num
(num, k)
:if k==1:
return
true
num_sum =
int(
sum(num)
) mean_value =
int(num_sum/k)
ifnot
(mean_value*k % num_sum ==0)
:return
false
value = mean_value
while
len(num)
>0:
value, num,rtn = find_value(num, value)
#rtn, num = sub_list(num, mean_value)
ifnot rtn:
return
false
if value ==0:
value = mean_value
return
true
if __name__==
"__main__"
: line = sys.stdin.readline(
).strip(
) num_str, k = line.split(
";")
num =
eval
(num_str)
num =
[int
(data)
for data in num]
k =int(k)
print
(check_num(num, k)
)
筆試程式設計題彙總 6
給乙個長度為n的整數陣列,將這個陣列分成m段,每一段的和為這一段的權重,所有段的權重的最大值為這次分割的權重,求所有分割中最小的權重 輸入描述 第一行是兩個整數,表示n,m m n 第二行數n個空格分割的整數 輸出 輸出所有分割中最小的權重 樣例 input 5 31 4 2 3 5 output ...
筆試程式設計題彙總 9
0代表黑棋,1代表白棋,找出被白棋包圍的黑棋並吃掉,返回吃掉之後的結果 import sys from copy import deepcopy 4 1101 1011 1001 1111 6101001 110100 111011 010101 111111 010100 41111 0101 1...
筆試 程式設計題
1.class a class b public a int main 2.int main 3.int func int a int main little endian int main char p char a 2 printf 0x x,0x x,0x x p 1 p,short p re...