LinuxForum.Fans
Тема

Нахождение числа разбиений на слогаемые

Автор: lamazavr 1 сообщений 870 просмотров
#149131

На просторах интернетов нашёл такую программу:

text
#include <stdio.h>
#include <iostream>
using namespace std;

int rnk( int n, int k );

int main( int argc, char *argv[] ) { int n; cin >> n; cout << "Разложений: " << rnk(n,n) << endl; return 0; }

int rnk( int n, int k ) { int sum= 0; if (n == 0) { return 1; } if (n < k) k=n; for (int i=1; i<=k; i++ ) { sum += rnk( n-i, i ); } return sum; }

Но вот никак не пойму как действует этот рекурсивный алгоритм. Может кто доходчиво объяснить? :o
или ткните носом где читать...

Войдите или зарегистрируйтесь, чтобы ответить.