以下給出陣列無限長度具有自然數,因爲它可以是無限的長度:陣列查找值使用索引邏輯面試問題
int[] myArray = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 0, 1, 1, 1, 2, 1, 3 ......};
//在地方的10它會採取1,0,在地方的11它會採取1,1,在位置12的它會採取1,2的等等.....
index 0 = > value 0 = > number 0
index 1 = > value 1 = > number 1
index 2 = > value 2 = > number 2
index 3 = > value 3 = > number 3
index 4 = > value 4 = > number 4
index 5 = > value 5 = > number 5
index 6 = > value 6 = > number 6
index 7 = > value 7 = > number 7
index 8 = > value 8 = > number 8
index 9 = > value 9 = > number 9
index 10 = > value 1 = > number 10
index 11 = > value 0 = > number 10
index 12 = > value 1 = > number 11
index 13 = > value 1 = > number 11
index 14 = > value 1 = > number 12
index 15 = > value 2 = > number 12
....
....
....
索引9值應爲9,但在索引10而不是數值爲10它應該是1 &再次在索引11值應該是0,然後在索引12值應該是1等等......
假設爲索引值10,我們得到的結果爲1,對於值11,我們得到的結果值0
我們必須寫我們的邏輯得到通過傳遞索引值的值,指數可以從0〜10000000
我們不能直接使用數組在特定指數來獲得價值,我們必須編寫邏輯如下圖所示:
public int getValue(int index){
int value = 0;
// logic to find the the value
return value;
}
我曾嘗試下面的方法來得到的結果爲通過指數,但它工作到兩位數字,即99(直到索引189)。但是對於三位數字&我們還需要更改邏輯。
public static int myMethod(int index){
System.out.println("index : " + index);
if(index <= 9){
return index;
}
boolean even = (index % 2) == 0;
int num = 0 ;
char res = 0;
if(even){
num = index - ((index - 10)/2);
System.out.println("num " + num);
res = new Integer(num).toString().charAt(0);
}else{
index = index -1;
num = index - ((index - 10)/2);
System.out.println("num 22 : " + num);
res = new Integer(num).toString().charAt(1);
}
int result = new Integer(res+"");
System.out.println(result);
return result ;
}
我讀了兩遍,但不明白這個問題。不知道這是我的問題或問題尚不清楚。 – Mritunjay
您只需創建一個方法,該方法將int參數作爲參數並返回此int的模10。 – davidxxx
索引= 30時會發生什麼? –