请问一道查找数字的递归有关问题

请教一道查找数字的递归问题
数组{1,2,3,4,5,6}
查找指定数字
一次依次查找 1 2 3 4 5 6 没有
二次查找 1+2 1+3 1+4 1+5 1+6
                   2+3 2+4 ……
三次查找 1+2+3 1+2+4
若1+2+3+4+5+6 没有 返回null

find 4   [1]  4
find 7   [1]  1
             [2]  6
find 13 [1]  2
             [2]  5
             [3]  6
这个算法可以用递归求解么?求教,谢谢!
------解决方案--------------------

#include <stdio.h>

int search_digit(int *digit, int n, int *matrix, int m)
{
    int i, j;
    static int nr = 0;

    if(nr == n) //第归深度
        return 0;

    //在矩阵matrix中搜索指定数字,然后更新对应数字
    for(i = nr; i < n; ++i)
    {
        printf("%d\n", digit[i]);
        for(j = 0; j < m; ++j)
            if(digit[i] == matrix[j])
                return j;

        digit[i] += nr + 1;
    }
    ++nr;
//    printf("nr:%d\n", nr);
    return search_digit(digit, n, matrix, m);
}

int main(int argc, char *argv[]) 
{
    int digit[] = {1, 2, 3};
    int matrix[] = {8, 7 , 6};

    
    printf("%d\n", search_digit(digit, 3, matrix, 3));
    return 0;
}

时间复杂度O(m*n),空间复杂度O(n)