12.08.2006, 20:59
общий
это ответ
Здравствуйте, Иваненко Виктор Анатольевич!
Самое простое, что пришло в голову (на C++):
Приложение:
int rand_numbers[25]; // массив случайных чиселint rand_num; // количество чисел в этом массивеint found[25]; // массив для хранения "разложения"// рекурсивная процедура нахождения возможных сумм для числа Nvoid FindSum(int N,int pos=0,int fpos=0){ if(N==0) {//найдена сумма, выводим на экран printf("%d",found[0]); for(int i=1;i<fpos;i++) printf("+%d",found[i]); printf("\n"); } else if(pos<25-1) { FindSumRecursive(N,pos+1); found[fpos]=rand_numbers[pos]; FindSumRecursive(N-rand_numbers[pos],pos+1,fpos+1); }}