所以即時通訊工具與遞歸函數工作,我的問題是,我有一個數組代表金幣這是一個[]這個數組有硬幣,需要與兩個用戶共享一種方式從長遠來看,每個用戶都會獲得金相同量或最佳的解決方案......這樣C蠻力遞歸函數
Gold
10 6 5 2
User A : gets 10 2
User B : gets 6 5
用戶A和用戶B之間的絕對值給我性差異。 在這種情況下,將1
爲了解決這個問題,我需要通過所有可能的組合,爲什麼我使用暴力破解和遞歸函數...這就是繳費要做到這一點讓我不得不運行的每一個組合,看看兩者之間的絕對差異,如果它比以前的更好,我把它保存在全球變量最好...
問題是功能不是很好的工作..如果你幫我我將不勝感激...
代碼如下:
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
int best = 0; // keeps the best option
int share_friends_recursive(int nelems,int a[],int friend_a,int friend_b,int i){
int sub = 0;
friend_a += a[i];
friend_b += a[i+1];
if(i+1 == nelems){
return 0;
}else{
sub = abs(friend_a - friend_b);
if(sub < best){
best = sub;
}
i++;
share_friends_recursive(nelems,a,friend_a,friend_b,i);
}
}
int main(int argc, char *argv[]) {
//
int nelems = 4;
int a[] = {10,6,5,2};
//friend A can get the first value
// friend B gets the second one ...
share_friends_recursive(nelems,a,0,1,0);
printf("%d \n",best);
return 0;
}
請舉一個例子或descri 「什麼都行不通」的意思。 – 2013-02-23 00:33:31
'int a [] = {'10','6','5','2'};'您是否指定了ASCII值? – 2013-02-23 00:34:40
我整數...不ascii值。當我發現它沒有工作,它沒有得到正確的解決方案,它應該是1不是0 ...也有一些問題,我似乎不明白在遞歸的方式。在這個問題,即時通訊有點阻止... – DestPT 2013-02-23 00:36:26