我需要一个函数 f ,它接受两个整数参数 - 一个被除数 A 和一个除数 B - 并返回一个数组整数商 C1,C2,...,Cn ,例如 C1 + C2 + ... + Cn = A 以及 A 的提醒和 B 是"平均分配"。
例如:
我不想重新发明轮子,某处有这样的功能吗?
答案 0 :(得分:2)
假设函数为string = 'this_is_my_string'
sp = string.split('_')
index = 12
total_len = 0
for word in sp:
total_len += (len(word) + 1) #The '+1' accounts for the underscore
if index < total_len:
result = word
break
print result
, 每个变量为正值整数 ,则示例算法为:
将x除以y,并将余数存储为r,将商存储为q。
f(x,y)
for( i=1; i<=r; i++ )
element[i] = q + 1;
就是这样。您的元素存储在// assuming the array index starts from 1.
数组中。
答案 1 :(得分:0)
这是一种贪婪的算法。对于任何除数Y - 1
,余数最多为Y
。因此,以贪婪的方式将余数1分配给每个商。在将1分配给每个或一个商将获得超过1之后,将无法留下余数。
f(X, Y):
q = X / Y
r = X % Y
while r not equal to 0
print q + 1
r := r - 1
Y := Y - 1
end
while Y not equal 0
print q
Y := Y - 1
end
end
如果X
和Y
都是非负数且Y > 0
,这将有效。如果Y
大于X
,它仍会处理此问题。
答案 2 :(得分:-1)
非常怀疑有一个。然而,可以非常容易地实现。您可以使用B
获取所述数组中的元素数量,使用A % B
以上的数字获取数字