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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.12.2016, 00:06   #1
mvlx
Новичок
Джуниор
 
Регистрация: 16.12.2016
Сообщений: 3
По умолчанию [Си] Задача о лучнике, стреляющем по мишени

Привет, помогите пожалуйста написать программу, которая определяет как должен стрелять лучник, чтобы набрать ровно 100 очков?
mvlx вне форума Ответить с цитированием
Старый 16.12.2016, 00:13   #2
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

Метко! В центр мишени! )
Son Of Pain вне форума Ответить с цитированием
Старый 16.12.2016, 02:00   #3
olej.tsil
Заблокирован
 
Регистрация: 29.11.2016
Сообщений: 215
По умолчанию

Цитата:
Сообщение от Son Of Pain Посмотреть сообщение
В центр мишени! )
Код:
#include <iostream>
#include <algorithm> 
#include <list>
using namespace std;

int mishen[] = { 13, 19, 22, 27, 35, 40 },
    n = sizeof( mishen ) / sizeof( mishen[ 0 ] );

ostream& operator <<( ostream& out, const list<int>& l ) {
   for( auto i = l.begin(); i != l.end(); i++ )
      out << *i << " ";
   return out << "= " << accumulate( l.begin(), l.end(), 0 );
}

void strelok( int sum, const list<int>& seq ) {
   for( int i = 0; i < n; i++ ) {
      if( sum < mishen[ i ] ) break;
      list<int> lcp( seq );
      lcp.push_back( mishen[ i ] );
      if( sum == mishen[ i ] ) {
         cout << lcp << endl;
         break;
      }
      if( sum > mishen[ i ] )
         strelok( sum - mishen[ i ], lcp );
   }
}

int main() {
   strelok( 100, list<int>() );
   return 0;
}
Код:
[olej@dell function]$ g++ luk.cc -std=c++11 -o luk
[olej@dell function]$ ./luk 
13 13 13 13 13 13 22  = 100
13 13 13 13 13 22 13  = 100
13 13 13 13 13 35  = 100
13 13 13 13 22 13 13  = 100
13 13 13 13 35 13  = 100
13 13 13 22 13 13 13  = 100
13 13 13 35 13 13  = 100
13 13 22 13 13 13 13  = 100
13 13 35 13 13 13  = 100
13 19 19 22 27  = 100
13 19 19 27 22  = 100
13 19 22 19 27  = 100
13 19 22 27 19  = 100
13 19 27 19 22  = 100
13 19 27 22 19  = 100
13 22 13 13 13 13 13  = 100
13 22 19 19 27  = 100
13 22 19 27 19  = 100
13 22 27 19 19  = 100
13 27 19 19 22  = 100
13 27 19 22 19  = 100
13 27 22 19 19  = 100
13 35 13 13 13 13  = 100
19 13 19 22 27  = 100
19 13 19 27 22  = 100
19 13 22 19 27  = 100
19 13 22 27 19  = 100
19 13 27 19 22  = 100
19 13 27 22 19  = 100
19 19 13 22 27  = 100
19 19 13 27 22  = 100
19 19 22 13 27  = 100
19 19 22 27 13  = 100
19 19 22 40  = 100
19 19 27 13 22  = 100
19 19 27 22 13  = 100
19 19 27 35  = 100
19 19 35 27  = 100
19 19 40 22  = 100
19 22 13 19 27  = 100
19 22 13 27 19  = 100
19 22 19 13 27  = 100
19 22 19 27 13  = 100
19 22 19 40  = 100
19 22 27 13 19  = 100
19 22 27 19 13  = 100
19 22 40 19  = 100
19 27 13 19 22  = 100
19 27 13 22 19  = 100
19 27 19 13 22  = 100
19 27 19 22 13  = 100
19 27 19 35  = 100
19 27 22 13 19  = 100
19 27 22 19 13  = 100
19 27 27 27  = 100
19 27 35 19  = 100
19 35 19 27  = 100
19 35 27 19  = 100
19 40 19 22  = 100
19 40 22 19  = 100
22 13 13 13 13 13 13  = 100
22 13 19 19 27  = 100
22 13 19 27 19  = 100
22 13 27 19 19  = 100
22 19 13 19 27  = 100
22 19 13 27 19  = 100
22 19 19 13 27  = 100
22 19 19 27 13  = 100
22 19 19 40  = 100
22 19 27 13 19  = 100
22 19 27 19 13  = 100
22 19 40 19  = 100
22 27 13 19 19  = 100
22 27 19 13 19  = 100
22 27 19 19 13  = 100
22 40 19 19  = 100
27 13 19 19 22  = 100
27 13 19 22 19  = 100
27 13 22 19 19  = 100
27 19 13 19 22  = 100
27 19 13 22 19  = 100
27 19 19 13 22  = 100
27 19 19 22 13  = 100
27 19 19 35  = 100
27 19 22 13 19  = 100
27 19 22 19 13  = 100
27 19 27 27  = 100
27 19 35 19  = 100
27 22 13 19 19  = 100
27 22 19 13 19  = 100
27 22 19 19 13  = 100
27 27 19 27  = 100
27 27 27 19  = 100
27 35 19 19  = 100
35 13 13 13 13 13  = 100
35 19 19 27  = 100
35 19 27 19  = 100
35 27 19 19  = 100
40 19 19 22  = 100
40 19 22 19  = 100
40 22 19 19  = 100
Только при чём здесь "теория алгоритмов"?
olej.tsil вне форума Ответить с цитированием
Старый 16.12.2016, 03:38   #4
mvlx
Новичок
Джуниор
 
Регистрация: 16.12.2016
Сообщений: 3
По умолчанию

Спасибо, но если можно, код в Си было б хорошо
mvlx вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Lazarus(Graph) смоделировать полёт стрелы до мишени. Люди добрые, помогите пожалуйста! Станислав12345 Помощь студентам 7 05.12.2016 17:29
Помогите разобраться с алгоритмом: определить по мишени результаты соревнований по стрельбе Вероника99 Помощь студентам 11 25.01.2014 04:17
Написать движения прицела и мишени _Bac9_ Паскаль, Turbo Pascal, PascalABC.NET 1 08.04.2013 19:41
Задача на оптимальный расчет маршрута (задача в презентации) в табличном процессоре Excel Toofed Помощь студентам 0 30.11.2011 01:12
Delphi Игра мишени ошибка tenek Помощь студентам 0 20.01.2011 23:25