根据给的 key 求出key 所对应的 index值!!莱鸟问题,见笑啦,各位大虾!!
public class Rekusive {
static int i;
   public static void main(String[] args) {
int temp=0;
float [] f ={1.0f,2.0f,3.0f,4.0f,5.0f};

Rekusive it=new Rekusive();
        temp = it.index(f, 3.0f);
        System.out.println(temp);
        i=f.length;
}
public int index(float [] f,float key)
{

if(i==0&& f[0]==key)
return 0;
else
return (f[i--]==key)? i :index(f,key);
} }

解决方案 »

  1.   

    public class Rekusive { /**
     * @param args
     */ static int i; 
    public static void main(String[] args) { 
    int temp=0; 
    float [] f ={1.0f,2.0f,3.0f,4.0f,5.0f};  Rekusive it=new Rekusive(); 
            temp = it.index(f, 3.0f); 
            System.out.println(temp); 
            i=f.length; 


    public int index(float [] f,float key) 



    if(f[i]==key) 
    return i; 
    else 
    return (f[i++]==key)? i :(i==f.length?-1:index(f,key)); 
    } }
    //没有对应的key时,index值是为-1
      

  2.   

    谢谢ai7090!
    可是为什么return (f[i++]==key)? 我的思路不对 我认为是f[i--]==key。
    因为 i=f.length;  已经等于数组的长度啦,在 f[i++] 就数组越界了呀?可是我测试你写的结果是对的,请你给我解释一下谢谢 
      

  3.   

     i=f.length是在程序最后执行的,顺序不对啊,放到前面去,思路就对了,哈哈