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

Размещение с повторениями - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ найденый элемент http://www.cyberforum.ru/cpp-beginners/thread400919.html
в матрице В(m,n) (m<=4,n<=6),все элементы которой разные ,в каждом ряде выбирается элемент с наименьшим значением,потом среди этих чисел выбирается наибольшее .вывести найденный элемент. с++
C++ среднее арифменическое найти среднее арифметическое положительных элементов матрицы А(m,n) (m<=6,n<=6), которые лежат ниже главной диагонали.с++ http://www.cyberforum.ru/cpp-beginners/thread400916.html
C++ Положительные элементы матрицы заменить числом 2, отрицательные - на 1, нулевые - на 3
Провести преобразование матрицы А таким образом:положительные элементы заменить числом 2,отрицательные - на 1,нулевые - на 3: A(3,3)=
C++ [C++] Задача "Пират в подземелье"
Всем доброго времени суток. Прощу помощи в следующем. Необходимо реализовать довольно широко известную задачу на С++: Подземелье сокровищ. В поисках драгоценных камней пират попадает в подземелье. Подземелье - прямоугольник, разделенный на NхM одинаковых по размеру комнат, в каждой из которых 4 двери, соединяющих их друг с другом. В каждой комнате стоят сундуки с золотыми монетами. Сундуки...
C++ нулевой елемент http://www.cyberforum.ru/cpp-beginners/thread400909.html
в массиве A(n) (n<=14) есть хотя бы один нулевой элемент.Узнать количество элементов,что больше 10,которые следуют за этим нулем.с++
C++ Проверка на Int Не знаю как реализовать проверку на ввод только Int c возможностью исправления(т.е. пока не будет введен Int будет выскакивать сообщение с просьбой ввести значение наново). Пока дошёл только до этого...дальше незнаю #include "iostream.h" #include "stdio.h" #include<conio.h> main() { int numb,flags; do { int flags=1; cin >> numb; подробнее

Показать сообщение отдельно
Thinker
Эксперт C++
4221 / 2195 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
07.12.2011, 21:42     Размещение с повторениями
Не долго мудрствуя, написал через полный перебор и рекурсию:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include<stdio.h>
int flag = 0;
 
int Sum(int *a, int n)
{
   int i, sum;
   for(i = sum = 0; i < n; i++)
      sum += a[i];
   return sum;
}
 
void Print(int *a, int n, int s)
{
   int i;
   for (i = 0; i < n; i++)
      if (a[i] > 0)
         printf(" + %d", a[i]);
      else printf(" - %d", -a[i]);
   printf(" = %d\n", s);
}
 
void Perebor(int *a, int k, int n, int s)
{
   if (k < n && !flag)
   {
       if (Sum(a, n) == s && !flag)
       {
          Print(a, n, s);
          flag = 1;
       }
       Perebor(a, k + 1, n, s);
       a[k] = -a[k];
       Perebor(a, k + 1, n, s);
       if (Sum(a, n) == s && !flag)
       {
          Print(a, n, s);
          flag = 1;
       }
   }
}
 
int main()
{
   int n, a[] = {1, 3, 5, 7}, s = 10;
   n = sizeof(a)/sizeof(*a);
   Perebor(a, 0, n, s);
   if (!flag)
      puts("no");
   return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru