以下给出阵列无限长度具有自然数,因为它可以是无限的长度:阵列查找值使用索引逻辑面试问题
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时会发生什么? –