#1 вообще не понял.
Насчет #2 - A из N по K - материал прервой четверти 10 класса.
int answer = fact(n)/fact(n-k);
Кодится элементарно. К функции надо условий добавить, что бы это было арифметической прогрессией.
*Ну или тупо перебрать все варианты n^k раз...
#3 Самое простое - делаем матрицу по начальным данным и тупо пробегаемся по каждой клетке и ифаем каждые 4 стороны.
Правка: в #2 юзается A из N по K, а не C...