2014-02-05 56 views
-3

给定N个整数,编写一个算法(以伪代码形式)来计算具有 差异的整数对数K. 输入 整数N,差K和列表元素。 输出 一个整数告诉这将做的工作有K.如何搜索此数组

回答

0

的差异对数:

START 
    # Variables Initialization 
    init Decision = 'continue'; 
    init N = 0; 
    init integers_array = array(); 

    # Getting the list of Integers 
    Do{ 
     prompt "Insert an Integer"; 
     input inserted_int; 
     integers_array.push(inserted_int); 
     prompt "Choose: Done or continue?!"; 
     input Decision; 
    }while not (Decision == 'continue'); 

    # Getting the Searched Difference 
    prompt "Insert the searched difference:"; 
    input K; 

    # Preparing the search phase 
    N = count(integers_array); 
    init pairs_counter = 0; 

    # Make a double loop on the same Integers array, and increment the counter when find   
     pairs, every pair will be counted twice! 
    foreach (int i=0; i<N; i++){ 
     foreach (int j=0; j<N; j++){ 
      if (absolute(integers_array[i] - integers_array[j]) == K){ 
       pairs_counter++; 
      } 
     } 
    } 

    # Divide by two to get the real number of Pairs 
    true_pairs_counter = pairs_counter/2; 

    output true_pairs_counter; 

    END