Форум программистов, компьютерный форум CyberForum.ru

Обьясните как работает рекурсия в данной задаче - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Код Хаффмана http://www.cyberforum.ru/cpp-beginners/thread29799.html
Люди подскажите, что это за зверь? и как его реализовать на с?
C++ Проверьте себя. А хорошо ли вы знакомы со switch'ом? В первую очередь смысл задачи не в том, что же там напечатается, а в том, что многие увидят несколько непривычный для себя код, который на первый взгляд даже покажется синтаксически ошибочным. А потому просьба к специалистам - не спешите сразу писать решение или пояснения - кому-то может оказаться интересным подумать над задачей. По этим же соображениям пропускаю отступы #include <stdio.h> ... http://www.cyberforum.ru/cpp-beginners/thread29774.html
C++ Massey-Omura
Люди добрые! Помогите кто чем может в написании прграммы, выполняющей этот алгоритм на С (желательно)...
C++ Case клавиш
Подскажите пожалуйста, как мне узнать какие case у клавиш: w, a, s, d и пробела. Заранее спасибо.
C++ Здраствуйте мои будущие колеги http://www.cyberforum.ru/cpp-beginners/thread29672.html
я не могу решить эту задачу помогите, если не трудно: Ребенок нарисовал кружки, и некоторые из них соединил отрезками. Кружки он пометил целыми числами от 1 до N, а на каждом отрезке поставил стрелочку. Затем он приписал каждому кружочку вес в виде некоторого целого числа и определил начальный и конечный кружочки. Из первого он должен выйти, а во второй попасть. Ребенок решил для себя набрать...
C++ Окно с активной областью? Написал прогу на С++,рисует в окошке фигуры,работа с классами,перегрузкой операций и так далее...(не суть как важно)....возникли проблемы...надо как то привязать область случайной генерации координат фигур и размерами окна...кажется через RectClient чтоли...чтобы за пределы окна не выходило....помогите кто в курсе плиз.... Добавлено через 15 минут 4 секунды Работа c MFC приложениями..... подробнее

Показать сообщение отдельно
Blade
0 / 0 / 0
Регистрация: 30.11.2008
Сообщений: 13
13.04.2009, 20:54     Обьясните как работает рекурсия в данной задаче
есть вот такая програмка:
Код
#include <stdio.h>
#include <conio.h>

int a[100],cnt=0,N,K;

void fun(long S, int tek)
{
 if(tek==N)
  {
   if(S==K) cnt++;
   return;
  }

for(int i=0; S+a[tek]*i<=K; i++)
 {
  fun(S+a[tek]*i, tek+1);
 }
}


void main()
{
int i;

clrscr();
printf("Vvedite hislo elementov: ");
scanf("%d",&N);
for(i=0;i<N;i++)
 {
  printf("Vvedite a[%d]: ",i+1);
  scanf("%d",&a[i]);
 }
printf("\nVvedite symmy: ");
scanf("%d",&K);
printf("\n------------------\n");
fun(0,0);
printf("Kolichestvo variantov = %d\n",cnt);

getch();
}
Обьясните как работает рекурсия?

Смысл задачи:
Задано количество элементов n.Каждый элемент-монета(a1-an),разного достоинства которое задает пользователь.Вводится сумма k.Нужно вывести количесво вариантов выдачи этой суммы данными монетами. Т.е. количество решиний уравнения a1x1+...+anxn=k.
Задача работает, но как обьяснить что она делает в функции?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 22:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru