Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 41, средняя оценка - 4.90
juli_nabieva
0 / 0 / 0
Регистрация: 19.05.2012
Сообщений: 4
#1

Вывести все комбинации чисел от 1 до 7 с помощью рекурсии - C++

19.05.2012, 03:17. Просмотров 6783. Ответов 11
Метки нет (Все метки)

Здравствуйте. Помогите пожалуйста с задачкой: вывести все комбинации чисел от 1 до 7 с помощью рекурсии в С++. Заранее ОГРОМНОЕ спасибо!!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.05.2012, 03:17
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Вывести все комбинации чисел от 1 до 7 с помощью рекурсии (C++):

Вывести все комбинации из трех чисел идущих подряд - C++
здравствуйте подскажите в чем ошибка вот задача Дан вектор {0, 1, 3, 3, 6, 10, 12, 13, 15, 50}. Вывести все комбинации из трех...

Вывести все возможные комбинации трех натуральных чисел x, y и z до 36 с определенными условиями - C++
Всем привет, ребят, нужно написать программу вывода на экран всех возможных комбинаций 3-х натуральных чисел x,y и z до 36 с...

С помощью рекурсии вывести все числа от 1 до введенного пользователем числа k - C++
С помощью рекурсии вывести все числа от 1 до введенного пользователем числа k. Не понимаю, как сделать это рекурсией. Язык С++

Массивы. Вычислить по формуле и вывести на экран все возможные комбинации сумм чисел - C++
Доброго всем времени суток.Я делаю только первые шаги в программировании.Начал разбираться с массивами простенькие задачки вроде...

С помощью рекурсии вывести на экран весь диапазон между заданными числами - C++
Ребята помогите понять рекурсию, буду очень благодарен! Например задача: ввести из клавиатуры 2 числа, и з помощю рекурсии вывести на...

Все комбинации чисел от 1 до 4 - C++
Все комбинации чисел от 1 до 4. Как сделать:)? 1111, 1112, 1113, 1114, ...... 4443, 4444 - как-то так

11
MrGluck
Модератор
Эксперт CЭксперт С++
7801 / 4845 / 754
Регистрация: 29.11.2010
Сообщений: 13,212
19.05.2012, 04:19 #2
Цитата Сообщение от juli_nabieva Посмотреть сообщение
Здравствуйте. Помогите пожалуйста с задачкой: вывести все комбинации чисел от 1 до 7 с помощью рекурсии в С++. Заранее ОГРОМНОЕ спасибо!!!!
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <algorithm>
 
int main(){
  int arr[7] = {1, 2, 3, 4, 5, 6, 7};
  do{
      for (int i=0; i < 7; i++)
         std::cout << arr[i];
      std::cout<< " ";
  }while(std::next_permutation(arr, arr + 7));
  return 0;
}
Но только это без рекурсии.
1
juli_nabieva
0 / 0 / 0
Регистрация: 19.05.2012
Сообщений: 4
19.05.2012, 12:38  [ТС] #3
А с рекурсией никак??
0
valeriikozlov
Эксперт С++
4682 / 2508 / 322
Регистрация: 18.08.2009
Сообщений: 4,550
19.05.2012, 13:08 #4
Цитата Сообщение от juli_nabieva Посмотреть сообщение
А с рекурсией никак??
с рекурсией:
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
#include <iostream>
using namespace std;
bool a[7];
int b[7];
void rec(int t)
{
    int i;
    if(t==7)
    {       
        for(i=0; i<7; i++)
            cout<<b[i];
        cout<<" ";
    }
    for(i=0; i<7; i++)
        if(!a[i])
        {
            b[t]=i+1;
            a[i]=true;
            rec(t+1);
            a[i]=false;
        }
} 
 
int main(){
  rec(0);
  return 0;
}
2
juli_nabieva
0 / 0 / 0
Регистрация: 19.05.2012
Сообщений: 4
19.05.2012, 13:29  [ТС] #5
спасибо огромное!!!!
0
daslex
1290 / 534 / 110
Регистрация: 02.08.2011
Сообщений: 2,756
19.05.2012, 14:50 #6
Так проще)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int rec(int n)
{
 
    std::cout<<n<<" ";
    if (n<6) return rec(n+1);
    else return n+1;
    
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    std::cout<<rec(1); //Начало отсчета = 1
    std::cout<<'\n';
    system("PAUSE");
    return 0;
 
}
0
valeriikozlov
Эксперт С++
4682 / 2508 / 322
Регистрация: 18.08.2009
Сообщений: 4,550
19.05.2012, 14:53 #7
Цитата Сообщение от daslex Посмотреть сообщение
Так проще)
проще, но как-то скромно все комбинации выдает.
0
daslex
1290 / 534 / 110
Регистрация: 02.08.2011
Сообщений: 2,756
19.05.2012, 15:00 #8
В смысле скромно?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include "stdafx.h"
#include "iostream"
 
int rec(int n, int m)
{
 
    std::cout<<n<<" ";
    if (n<m) return rec(n+1,m);
    else return n+1;
    
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    int n,m;
    std::cin>>n>>m;
    std::cout<<rec(n,m-1); //Любой выбранный диапазон целых чисел от n до m
    std::cout<<'\n';
    system("PAUSE");
    return 0;
 
}
0
MrGluck
Модератор
Эксперт CЭксперт С++
7801 / 4845 / 754
Регистрация: 29.11.2010
Сообщений: 13,212
19.05.2012, 15:02 #9
Цитата Сообщение от daslex Посмотреть сообщение
Так проще)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int rec(int n)
{
 
    std::cout<<n<<" ";
    if (n<6) return rec(n+1);
    else return n+1;
    
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    std::cout<<rec(1); //Начало отсчета = 1
    std::cout<<'\n';
    system("PAUSE");
    return 0;
 
}
Как бы комбинация чисел имеет 7! вариантов. А у вас всего-навсего не хватает 5039 вариантов. Но начало уже положено ;-)
0
daslex
1290 / 534 / 110
Регистрация: 02.08.2011
Сообщений: 2,756
19.05.2012, 15:03 #10
В задании сказано не про семизначные числа, а про числа от сих и до сих)) Так что так проще
0
MrGluck
Модератор
Эксперт CЭксперт С++
7801 / 4845 / 754
Регистрация: 29.11.2010
Сообщений: 13,212
19.05.2012, 15:07 #11
Цитата Сообщение от daslex Посмотреть сообщение
В задании сказано не про семизначные числа, а про числа от сих и до сих)) Так что так проще
Сказано найти комбинации чисел из цифр от 1 до 7.
Вот смотрите: у вас 3 шарика, красный (к), голубой(г) и зеленый(з)
Вам нужно найти все комбинации этих шариков.
Вы что, просто поставите к г з и все? Это будет лишь одна комбинация возможной расстановки. А все выглядят вот так:
к г з
к з г
г к з
г з к
з к г
з г к
1
juli_nabieva
0 / 0 / 0
Регистрация: 19.05.2012
Сообщений: 4
07.06.2012, 12:20  [ТС] #12
Помогите, пожалуйста, написать программу на С.
Вот условие:
Из входного потока (терминала или файла) поступает текст, состоящий из слов, которые разделены пробелами. Между словами может быть более одного пробела.
Разобрать текст по символам, упорядочив его путем сортировки двоичным деревом. Под символами в данном случае подразумеваются лишь те, которые входят в слова. Дерево представить в виде объекта, в который включить следующие методы:
• построить дерево по тексту, заданному в файле;
• удалить поддерево с корнем, значение в котором равно заданному;
• вывести дерево на экран в наглядном виде.
• Сохранить-восстановить дерево.
Кроме этих, в объект включить метод:
- Подсчитать количество уровней в заданном поддереве, считая корень.
0
07.06.2012, 12:20
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.06.2012, 12:20
Привет! Вот еще темы с ответами:

Все возможные комбинации 5 чисел - C++
В общем задача такая: Нужно, чтобы программа выдавала все возможные комбнации 5 чисел: 1 число от 1 до 32 2 число от 2 до 33, но...

Нужно вывести все возможные возрастающие 6-ти значные комбинации - C++
Задачка: Нужно вывести все возможные возрастающие 6-ти значные комбинации из промежутка чисел &lt;0,100&gt; Подкиньте пару идей.

Вывести все возможные комбинации цепочек в матрице смежности - C++
Есть матрица смежности вида: AB0 BCD DD0 CKN NE0 KB0 Т.е. если в конце строки 0, то из одного узла есть связь только к одному...

Программа должна показать все комбинации заданной суммы чисел - C++
Доброго всем времени суток.Помогите пожалуйста бестолковому избавиться от глобальных переменных.С векторами только знаком практически...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru