需要一個函數˚F採用兩個整數參數 - 股息甲和除數乙 - 並返回整數的數組商數C1,C2,... ,Cn如C1 + C2 + ... + Cn = A和提醒A和B是「均等分佈」。司,同時保留總和
例如:
- F(9,3)= [3,3,3]
- F(10,3)= [4,3,3]
- F(11 ,3)= [4,4,3](不只是[5,3,3])
我不想重新發明輪子,有沒有這樣的功能?
需要一個函數˚F採用兩個整數參數 - 股息甲和除數乙 - 並返回整數的數組商數C1,C2,... ,Cn如C1 + C2 + ... + Cn = A和提醒A和B是「均等分佈」。司,同時保留總和
例如:
我不想重新發明輪子,有沒有這樣的功能?
假定該函數爲f(x,y)
,和每個變量爲正值的整數,樣品的算法是:由y
鴻溝x和商店其餘爲r,商爲q 。
for(i=1; i<=r; i++)
element[i] = q + 1;
// assuming the array index starts from 1.
就是這樣。你的元素存儲在element[]
數組中。
高度懷疑有一個。但是可以很容易地實現。您可以使用B
和1以上的數字獲得數組中元素的數量A % B
這是一個貪婪算法。對於任何除數Y
,餘數最多爲Y - 1
。因此,以貪婪的方式將餘數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
,它仍然會處理此問題。