0
我想弄清楚如何有效地找出所有的數字,可以作爲一些集合的線性組合,比如說前幾個豐富的數字(12,18,20,24)。問題是我現在想要接近它的方式是遍歷所有總和不超過100的數字a * 12 + b * 18 + c * 20 + d * 24。現在我想到了2種方法。一個多重嵌套的while循環或一個while循環,它根據while循環頂部的條件增加不同的東西。這兩種方法的問題在於,我不知道在運行時需要多少個條件或嵌套循環,因爲我不知道我將會計算多少個不同的數字。有沒有什麼辦法來編寫我的程序,以便它的n次嵌套n次,或者n次的n次。創建多個嵌套循環
下面是開關組的輪廓:
int count=1;
while(true){
if(num2<smal){
switch(count){
case 1:
a++;
break;
case 2:
b++;
break;
case 3:
c++;
break;
case 4:
d++;
break;
}
}
else {
switch(count){
case 1:
if(a!=0){
a=0;
b++;
}
else{count++;}
break;
case 2:
if(b!=0){
b=0;
c++;
count--;
}
else{count++;}
break;
case 3:
if(c!=0){
c=0;
d++;
count--;
}
else{count++;}
break;
case 4:
break;
}
}
//num is update here
if(count==4){break;}
}
哇,你可能應該能夠想到這一點。我使用C++ btw。我想我可能需要重新調查我的方法。因爲我覺得遞歸很快就會失控。 – emschorsch 2011-12-25 03:49:12
哇我剛剛意識到我在誤讀項目歐拉問題,這就是爲什麼我認爲這個問題非常難以置信。大聲笑的問題,因爲我現在明白,似乎幾乎微不足道。我只需要找到可以表示爲兩個數字之和的數字,而不包括那些數字的倍數,這些數字可以簡化所有的事情。無論如何,感謝您的幫助。 – emschorsch 2011-12-25 04:41:57
只是好奇,你可以鏈接到這個問題?謝謝! – Bill 2011-12-26 05:01:08