Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.01.2014, 08:09   #11
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
так что никаких 8 часов на раздумья компа не нужно.
В данной постановке задачи - не нужно. Я ведь говорил о той постановке, которая была до моего поста.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 24.01.2014, 15:07   #12
Вероника99
Форумчанин
 
Регистрация: 15.12.2013
Сообщений: 414
По умолчанию

Спасибо,код работает)Но я не очень понимаю код,я вручную записала как действует рекурсия и я не поняла как все таки sum доходит до 21,она же не обнуляется (но я использовала другой массив:int a[size] = {25,25,20,20,10,5,3,2,1}; ) где сайз=9 ...Я просто начала с того,что после первого вызова рекурсии sum=25,а в последней оно=111,короче просто сумма всех элементов вышла

Последний раз редактировалось Вероника99; 24.01.2014 в 22:28.
Вероника99 вне форума Ответить с цитированием
Старый 24.01.2014, 22:25   #13
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

В b мы заносим индексы элементов массива A, которые мы уже использовали..
Poma][a вне форума Ответить с цитированием
Старый 24.01.2014, 22:33   #14
Вероника99
Форумчанин
 
Регистрация: 15.12.2013
Сообщений: 414
По умолчанию

да,с этим я уже разобралась,а вот с рекурсией не очень (предыдущее сообщение)
Вероника99 вне форума Ответить с цитированием
Старый 24.01.2014, 23:24   #15
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Код:
#include <stdio.h>
#define n 5
#define ans 71
#define size 9

int a[size] = {25, 25, 20, 20, 10, 5, 3, 2, 1}, b[size];

void p(int sum, int k, int pos)
{
	int flag;
	if (n == k)	
	{
		if (sum == ans)
		{	//printf("50 + ");	
			for (int i = 0; i < n-1; i++)
				printf("%d + ", a[b[i]]);
			printf("%d = %d\n", a[b[n-1]]	, ans);
		}	
		return;
	}
	

	for(int i = pos; i < size; i++)
	{	
		b[k] = i;
		p(sum+a[b[k]], k+1, i+1);
				
	}

}
int main()
{
	p(0, 0, 0);	
	return 0;
}
Poma][a вне форума Ответить с цитированием
Старый 25.01.2014, 00:04   #16
Вероника99
Форумчанин
 
Регистрация: 15.12.2013
Сообщений: 414
По умолчанию

Poma][a, я просто не понимаю,как отобранные числа занести в новый массив
Вероника99 вне форума Ответить с цитированием
Старый 25.01.2014, 00:16   #17
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Вы берете I-тый элемент исходного элемента.. и заносите I в массив B, чтобы потом не взять этот же элемент..
Poma][a вне форума Ответить с цитированием
Старый 25.01.2014, 04:15   #18
Вероника99
Форумчанин
 
Регистрация: 15.12.2013
Сообщений: 414
По умолчанию

Poma][a,спасибо большое,я разобралась)
Вероника99 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на подбор чисел и выведения кол-ва вариантов hruma Помощь студентам 5 29.11.2013 15:13
Сумма с несколькими критериями, подсчёт/сумма нечётных чисел XPsihopaTX Microsoft Office Excel 3 11.10.2012 15:00
Сумма чисел Dima-War Общие вопросы C/C++ 9 20.03.2012 23:14
Как в Excel'е организовать пересчёт значений в ячейках так чтобы их сумма оставалась постоянной? Sideshow Microsoft Office Excel 16 18.10.2011 06:44
Сумма чисел gamer123 Помощь студентам 2 19.01.2008 20:42