我碰到這個問題就來了:確定了一些可能的組合的數量得到一個特定的結果
給定一個整數,確定可能的組合只用2,3,7,其總和將給予整數數量。
例如:
4 - 2 {(2,2)}
9 - 3 {(2, 7), (2, 2, 2, 3), (3, 3, 3)}
的一種方式是通過3個環迭代,然後確定該和是否是可以實現的。這裏的代碼:
for(i=0; i<=num/2; i++){
for(j=0; j<=num/3; j++){
for(k=0; k<=num/7; k++){
if(i*2+j*3+k*7 == num)
count++;
}
這裏計數將有可能的數量。但這是非常低效的,需要O(n3)時間。我想知道是否有其他有效的方法來計算不同組的數量。
http://en.wikipedia.org/wiki/Change-making_problem – amit