ho messo nomi lunghi ai metodi per migliorare la comprensione   
 
ho usato due ricorsioni: una principale e una per contare le occorrenze.
	codice:
	// dato un array di stringe (a partire da un dato indice) 
// conta il numero di stringhe di lunghezza data
private static int quanteStessaLunghezza(int lunghezza, String[] array, int indiceControllo) {
    // passo base: se ho finito di scandire l'array ce ne sono 0 con la stessa lunghezza
    if(indiceControllo == array.length) {
        return 0; 
    /*
     * passo ricorsivo: 
     * se la prima è della lunghezza data restituisce 1 + il numero di stringhe
     * di lunghezza data nel resto dell'array.
     * Altrimenti il numero di stringhe di lunghezza data nel resto dell'array
     */
    } else {
        return quanteStessaLunghezza(lunghezza, array, indiceControllo+1)+
            (array[indiceControllo].length() == lunghezza?1:0);
    }
}
private static boolean almenoKStringheUgualiRic(int k, String[] array, int indiceControllo) {
    /* 
     * passo base: 
     * se k == 0 ritorna true
     * se indiceControllo == array.length (finito l'array) ritorna false
     */
    if(k == 0 || indiceControllo == array.length) {
        return k == 0;
    /*
     * passo ricorsivo:
     * prende la prima stringa e verifica se nel resto dell'array ce ne sono
     * almeno k-1 della stessa lunghezza. Se ci sono ritorna true,
     * altrimenti considera la stringa successiva...
     */ 
    } else {
        return quanteStessaLunghezza(   array[indiceControllo].length(), 
                                        array, 
                                        indiceControllo+1) == k - 1
                || 
                    almenoKStringheUgualiRic(k, array, indiceControllo+1);
    }
}
public static boolean almenoKStringheUguali(int k, String[] array) {
    return almenoKStringheUgualiRic(k, array, 0);
}
public static void main(String[] args) {
    String strs[] = {"a", "aa", "aaa", "aaaa", "aaa", "aa", "aa", "aa"};
    System.out.println(almenoKStringheUguali(2, strs));
    System.out.println(almenoKStringheUguali(3, strs));
    System.out.println(almenoKStringheUguali(4, strs));
    System.out.println(almenoKStringheUguali(5, strs));
    System.out.println(almenoKStringheUguali(6, strs));
}