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

Полный перебор - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как на блок-схеме обойтись без вводимых данных? http://www.cyberforum.ru/cpp-beginners/thread676308.html
#include "stdafx.h" #include "iostream" #include "math.h" using namespace std; const double n=2; const double e=0.0005; int main() { float S=1, A=1.0, sl=A, B;
C++ Слияние списков Помогите пожалуйста написать программу. Необходимо из элементов 3-х списков создать новый упорядоченный список(выполнить слияние списков). Ввод исходных списков я сделал, а вот как выполнить слияние не знаю. Ввод списков: #include "stdafx.h" #include <list> #include "iostream" #include <stdio.h> #include <conio.h> #include<iostream> #include<cmath> http://www.cyberforum.ru/cpp-beginners/thread676304.html
Змейка движение вправо C++
Здравствуйте,пишу игру змейку дошёл до того чтобы когда дошёл до конца массива перешёл на 0-ой столбец,т.е чтобы было циклично,вниз(клавиша A),и вниз(Клавиша S) я сделал но почему-то клавиша D работает только при условии что кол-во ячеек в змейке не больше 3-х если больше то вылетает таких проблем с a и s нет.Что делать помогите,вот код у клавиша D начинается с 113 строчки #include "stdio.h"...
Объясните как правильно создавать проект C++
Писать толком не умею. Было все в одном файле, надо "разбить". Когда все было в одном - работало. Объясните, пожалуйста как разбить. Main: #include <iostream> #include <sstream> #include <cmath> //#include "carray111.h" #include "CShape.h" //#include "CPoint.h"
C++ Насколько разумно использовать throw вместо return http://www.cyberforum.ru/cpp-beginners/thread676285.html
Насколько разумно использовать throw вместо return? И является ли throw более медленным?
C++ Что такое "Data-driven programming"? пожалуйста, объясните на пальцах, что такое Data-driven programming ? подробнее

Показать сообщение отдельно
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1238 / 987 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
21.10.2012, 12:25     Полный перебор
Это ж не перестановки, это комбинации.

Конкретно для данного случая, чем не угодил тупой как кирпич вариант?
C++
1
2
3
4
5
for (int i = 0; i < 1; ++i)
    for (int j = 0; j < 1; ++j)
        for (int k = 0; k < 1; ++k) {
            // std::cout << i << " " << j << " " << k << "\n";
        }
Если там надо произвольное количество таких чисел, то уже придётся извращаться и писать что-то вроде
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
{   std::vector<unsigned> nums(3, 0); // понимать как вектор цифр числа в какой-то системе счисления
    bool over = false;
    while (!over) {
/*
        for (int i = 0, len = nums.size(); i < len; ++i) {
            std::cout << nums[i] << " ";
        }
        std::cout << "\n";
*/
        over = next_count(nums, 2); // получить следующее число в двоичной системе
    }
}
 
// Функция add() из любой библиотечки длинной арифметики
bool next_count(std::vector<unsigned> &vec, unsigned base)
{
    bool carry = true;
    for (int i = 0, len = vec.size(); i < len; ++i) {
        if (carry) {
            vec[i]++;
            carry = false;
        }
        if (vec[i] >= base) {
            vec[i] -= base;
            carry = true;
        }
    }
    return carry; // carry == произошло ли переполнение
}
 
Текущее время: 14:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru