Хороший банк решений для рекурсии в [закрытом] C/C ++/Java/C#

Чтобы разделить один модуль на несколько, следует правильно экспортировать и импортировать все модули и компоненты:

app.module.ts * модуль «root»

@NgModule({
  declarations: [
    AppComponent,
  ],
  imports: [
    // angular
    BrowserModule,
    HttpClientModule,
    // splitted modules
    DiversityMattersModule,
    PreventingAirPolutionModule,
    PeacfullyRevolutionModule,
    // ...
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule {
}

[1110 ]iversity-Affairs.module.ts Пример модуля из списка выше

@NgModule({
  imports: [
    // ...
  ],
  declarations: [
    AwesomeComponent,
    // ...
  ],
  exports: [
    AwesomeComponent,
    // ...
  ],
})

Теперь разрешен каждый компонент, зависящий от AppComponent импортировать AwesomeComponent.

11
задан 7 revs, 2 users 69% 23 May 2017 в 12:09
поделиться

6 ответов

Эта статья объясняет рекурсию и имеет некоторые простые примеры C для того, чтобы пересечь связанный список и двоичное дерево

5
ответ дан 3 December 2019 в 06:22
поделиться

Один из лучших способов изучить рекурсию состоит в том, чтобы получить некоторый опыт на языке функционального программирования, таком как Haskell или Lisp или Схема.

Так нахождение рекурсивных проблем может быть уменьшено до нахождения некоторых проблем и ответов, связанных с языками функционального программирования. Вот является пример 99 проблемами шепелявости.

Действительно только требуется 5 минут для изучения Схемы или Lisp, таким образом, можно начать с примерами сразу же для теста завтра, Вы упомянули.

Другой отличный способ изучить рекурсию состоит в том, чтобы получить некоторую практику в математических доказательствах, включающих индукцию.


Ключевые понятия, касающиеся рекурсии:

С рекурсией Вы не должны знать, как решить проблему. Просто необходимо знать 2 вещи. 1) как решить самый маленький экземпляр проблемы и 2) как разбить его в меньшие части.

Эквивалентно, просто необходимо иметь в виду необходимость: 1) основной случай и 2) рекурсивный случай.

Основной случай обрабатывает 1 единственный экземпляр того, что Вы хотите сделать с самым маленьким входом.

Рекурсивный случай повреждает проблему в подпроблему. В конечном счете эта подпроблема уменьшит до основного случая.

Пример:

//1+...+n = n*n(+1)/2 = sumAll(n):

int sumAll(int x)
{
  if(x == 0) //base case
    return 0; 
  else
    return sumAll(x-1) + x; //recursive case
}

Важно понять, что основной случай не трудно выяснить. Это просто должно существовать. Вот эквивалентное решение для x> 0:

//1+...+n = n*n(+1)/2 = sumAll(n):
int sumAll(int x)
{
  if(x == 1) //base case
    return 1; 
  else
    return sumAll(x-1) + x; //recursive case
}
9
ответ дан 3 December 2019 в 06:22
поделиться

Я думаю, что синтаксис Haskell является большим для размышления рекурсивно, потому что конструкция сопоставления с образцом делает основной случай и рекурсивный случай настолько очевидными. Перевод этого на другой язык затем довольно прост.

sumAll [] = 0
sumAll (x:xs) = x + sumAll xs

Для понимания этого действительно только необходимо знать это

  • [] представляет пустой список,
  • (x:xs) разделяет список на голову (x) и хвост (xs)

Вы не должны изучать всего Haskell (который является, давайте столкнемся с ним, трудно) - но выполнение некоторых основ, конечно, помогает Вам думать в рекурсии.

2
ответ дан 3 December 2019 в 06:22
поделиться

Это собирается походить на очень хромой ответ, но рекурсия является парадигмой, это часто очень твердо хвататься за первое для новичков. Потребуется больше чем размышление дня по предмету для Вашего друга для твердого схватывания понятия.

Можно хотеть сделать, чтобы он просмотрел Euler Проекта для потенциального направления для изучения.

2
ответ дан 3 December 2019 в 06:22
поделиться

Считайте SICP (Структура и интерпретация компьютерных программ)

0
ответ дан 3 December 2019 в 06:22
поделиться
#include<iostream>
using namesspace std;
int E(int x);
int main()
{
    int x;
    cout << E(x) << endl;
    return 0;
}

int E(int x)
{
    return x ? (x % 10 + E(x/10)) : 0;
}
0
ответ дан 3 December 2019 в 06:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: