2013-12-12 109 views
-1

我想检查第一个数组中的数字是否与第二个数组中的任何数字相同,并使用递归算法返回索引的值。如何通过递归函数检查并返回一对值?

public class RecursionAlgorithms1 { 
    public static void main(String[] args) { 
     int [] array1 = {7,1,5,10,8,4,15,60}; 
     int [] array2 = {1,10,8,5,15,7,60,4}; 
     int result[] = Check(array1, array2); 
     //for (int i = 0; i < result.length; i++) { 
      System.out.println(result[7]); 
     //} 
    } 

    public static int[] Check(int [] arr1,int [] arr2){ 
     int index1=8; 
     int index2=8; 
     if (arr1[index1] != arr2[index2]) { 
      return Check(arr1, arr2); 
     } 
     else{ 
      return new int [] {index1,index2}; 
     } 
    } 
} 
+0

@PradeepSimha如果有人能够代码是C#,我将其更改为Java ..其确定 – user3095127

+1

是否需要使用递归的?一般来说,删除递归是一种很好的做法,并以迭代的方式编写它。 –

+0

在某些情况下使用递归是很好的,它使代码更简单,更清晰,但这似乎并不是这些情况之一。 –

回答

1

我建议你写这样的:

public class Arrays1 { 
    @SuppressWarnings("empty-statement") 
    public static void main(String[] args) { 
     int [] array1 = {7,10,5,100,80,40,15,60}; 
     int [] array2 = {10,100,80,5,15,7,60,40}; 
     for (int i = 0; i < array1.length; i++) { 
      for (int j = 0; j < array2.length; j++) { 
       if (array1[i] == array2[j]) { 
        System.out.println("(" + i + "," + j + ")"); 
       } 
      } 
     } 
    } 
} 
+0

嘿它很容易做到这一点! ..我需要它与功能 – user3095127

+0

使用递归 – user3095127

0

递归未正确实施。在每次递归调用时,数组的索引都应该被修改,否则它会继续比较两个数组中的相同元素。

+0

当然,我仍然没有一个策略来返回价值 – user3095127

+0

关于指数的修改它将被解决,但首先 你有任何策略,以返回他们在If语句中使用递归吗? – user3095127

+0

提出了两个基本条件。要么发现相等的元素,要么两个数组都达到它们的终点,然后返回相应的结果... –

0

递归不是必需的。这将在两个阵列中找到共同元素

int [] array1 = {7,1,5,10,8,4,15,60}; 
int [] array2 = {1,10,8,5,15,7,60,4}; 
Integer[] arr=new Integer[array2.length]; 
for(int i=0;i<array2.length;i++){ 
    arr[i]=array2[i]; 
} 


for(int i:array1){ 
    if(Arrays.asList(arr).contains(i)){ 
     System.out.println("Both arrays have "+i); 
    } 
} 

输出。

Both arrays have 7 
Both arrays have 1 
Both arrays have 5 
Both arrays have 10 
Both arrays have 8 
Both arrays have 4 
Both arrays have 15 
Both arrays have 60 
+0

你可以写相同的代码使用递归? 我的意思是创建一个函数并在其内部再次调用它 并输出具有相同数字的成对的指数。 并得到像这样的输出:这些是包含与阵列1和阵列2相同数量的阵列的索引。 (0,5),(1,0),(2,3),(3,1 ),(4,2),(5,7),(6,4),(7,6) – user3095127

+0

@ user3095127您可以试试。来这里试试。 –