2013-12-12 91 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您可以試試。來這裏試試。 –