我試圖經過數組:轉到開始位置不同
public static String calculate(int [] bills,int amount){
int size = bills.length;
int cache = 0;
for (int i = 0; i < size; i++) {
cache+=bills[i];
if(cache==amount){
return "OK";
}
}
return "NO OK";
}
,將經過的順序陣列(和總和):
1 2 5 7 = 1,3,8,15(總和)
但我想是這樣的:
第一迭代:1 2 5 7 = 1,3,8,15
第二迭代:2 5 7 1 = 2,7,14,15
第三迭代:5 7 1 2 = 5,12,13,15
第四迭代:7 1 2 5 = 7,8- ,10,15
注:我打電話給第一,第二,第三,第四,因爲我指的是2循環的情況; 在技術上我想要做的是從第二次迭代等到達索引時[3],然後索引[0]並添加它們。然後從索引[2]開始,索引[3]索引[0]和[1]。
我試着用不同的方式使用雙((和j = i)),並且當j(第二個) 達到數組的最後位置(在這種情況下爲[3])將其更改爲零並且大小=我(這將是它開始點),但它不能正常工作... 也可能它可以與(%模數)一起工作,但我希望看到其他人的想法總是有助於學習:)多謝你們!
PS:我用這一個作爲陣列(忽略該方法的量部分,因爲不是問題的一部分):
int[] bills = new int[] {1,2,5,7};
PSS:這是我嘗試的代碼(與所述的雙循環和它不是一個與我做,因爲我錯過了它,因爲我刪除,改變了很多嘗試新事物,這其中可能有可怕的錯誤,失誤少..):
public static String calculate(int [] bills,int amount){
int size = bills.length;
int cache = 0;
int c = 1;
int z = size-1;
int s = 0;
int w = 0;
boolean TIME = false;
for (int i = w; i < size;) {
for (int j = i; j < size;j++){
cache+=bills[j];
if(cache==amount){
cache=0;
return "OK";
}
System.out.println(TIME);
if(i>0 && j==z && TIME){
size=i;
i=0;
TIME=false;
}
}
w++;
size=z+1;
cache=0;
TIME=true;
}
}
爲什麼它關係到你添加數字的順序? –
請顯示您「嘗試過」以及它與您想要的有何不同。 –
完成了,謝謝。我想嘗試一些可能性,而不使用這種4位整數數組的反覆次數,我有其他的嘗試或總和這種方式不給,但這是唯一剩下使它的作品。感謝您的幫助,並感謝詢問 –