ZOObilo:
Имеется задача: посчитать C(n,k) в больших числах, но так, чтобы сначала производились необходимые деления, а уж потом умножения. Передумал кучу вариантов, но проблема везде одна: надо выделять массив либо из k, либо из n-k элементов (в лучшем случае битов, что тоже много), что, сами понимаете, невозможно, т.к. n и k практически не ограничены. Отсюда вопрос: как вы думаете, можно проделать необходимые операции, не прибегая к выделению массивов?
Хм. Имхо направление довольно очевидно. Насколько мне изменяет память, если сократить k! в числителе и знаменателе, C(n,k)=n*(n-1)*...*(n-k+1)/(n-k)!. Осталось сократить получившуюся дробь. На практике, полагаю, вполне хватит пробежать по знаменателю, сокращая его множители с кратными из числителя. В принципе же, нужно сокращать каждый множитель из знаменателя на НКО с очередным элементом из числителя, пока не сократишь весь знаменатель (сократится по определению, то есть за выход из цикла здесь можно не волноваться). Останется лишь перемножить оставшееся в числителе.