2016-07-16 52 views
-1

所以我一直在努力如何递归地平方向量元素...所以如果我有一个向量样本= {2,3,4},函数需要返回一个带有4,9 16。有什么建议?递归地平方向量元素

+1

为什么递归?非递归地做非常微不足道。递归是一个很难的要求? – nwp

+0

是的,它必须递归地完成 – mariskaM

回答

0

这个例子看起来像递归:

#include <vector> 
#include <iostream> 
#include <cstdlib> 

void recursiveSquare (std::vector <int> & data, const int index) 
{ 
    std::cout << "Function call for element: " << index << std::endl; 
    if (index != data.size() - 1) { 
     recursiveSquare (data, index + 1); 
    } 
    std::cout << "Modified element: " << index << std::endl; 
    data [index] *= data [index]; 
}; 

void print (const std::string & header, std::vector <int> & data) 
{ 
    std::cout << header; 
    for (const auto & a : data) { 
     std::cout << a << " "; 
    } 
    std::cout << std::endl; 
} 

int main (int /*argc*/, char ** /*argv*/) 
{ 
    std::vector <int> data {2, 3, 4}; 

    print ("Input: ", data); 
    recursiveSquare (data, 0); 
    print ("Output: ", data); 

    return EXIT_SUCCESS; 
} 

输出:

Input: 2 3 4 
Function call for element: 0 
Function call for element: 1 
Function call for element: 2 
Modified element: 2 
Modified element: 1 
Modified element: 0 
Output: 4 9 16 
+0

它的工作!非常感谢 – mariskaM