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

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

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

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

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

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

Все возможные комбинации 5 чисел C++
C++ Все комбинации чисел от 1 до 4
C++ Вывести все возможные комбинации цепочек в матрице смежности
Нужно вывести все возможные возрастающие 6-ти значные комбинации C++
C++ разбить строку в массиве по 3 символа, считать все комбинации, и вывести самую частую из них
Массивы. Вычислить по формуле и вывести на экран все возможные комбинации сумм чисел C++
С помощью рекурсии вывести все числа от 1 до введенного пользователем числа k C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Ворчун
Эксперт CЭксперт С++
6634 / 3825 / 502
Регистрация: 29.11.2010
Сообщений: 10,111
19.05.2012, 04:19     Вывести все комбинации чисел от 1 до 7 с помощью рекурсии #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;
}
Но только это без рекурсии.
juli_nabieva
0 / 0 / 0
Регистрация: 19.05.2012
Сообщений: 4
19.05.2012, 12:38  [ТС]     Вывести все комбинации чисел от 1 до 7 с помощью рекурсии #3
А с рекурсией никак??
valeriikozlov
Эксперт C++
4663 / 2489 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
19.05.2012, 13:08     Вывести все комбинации чисел от 1 до 7 с помощью рекурсии #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;
}
juli_nabieva
0 / 0 / 0
Регистрация: 19.05.2012
Сообщений: 4
19.05.2012, 13:29  [ТС]     Вывести все комбинации чисел от 1 до 7 с помощью рекурсии #5
спасибо огромное!!!!
daslex
1270 / 515 / 106
Регистрация: 02.08.2011
Сообщений: 2,641
19.05.2012, 14:50     Вывести все комбинации чисел от 1 до 7 с помощью рекурсии #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;
 
}
valeriikozlov
Эксперт C++
4663 / 2489 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
19.05.2012, 14:53     Вывести все комбинации чисел от 1 до 7 с помощью рекурсии #7
Цитата Сообщение от daslex Посмотреть сообщение
Так проще)
проще, но как-то скромно все комбинации выдает.
daslex
1270 / 515 / 106
Регистрация: 02.08.2011
Сообщений: 2,641
19.05.2012, 15:00     Вывести все комбинации чисел от 1 до 7 с помощью рекурсии #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;
 
}
MrGluck
Ворчун
Эксперт CЭксперт С++
6634 / 3825 / 502
Регистрация: 29.11.2010
Сообщений: 10,111
19.05.2012, 15:02     Вывести все комбинации чисел от 1 до 7 с помощью рекурсии #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 вариантов. Но начало уже положено ;-)
daslex
1270 / 515 / 106
Регистрация: 02.08.2011
Сообщений: 2,641
19.05.2012, 15:03     Вывести все комбинации чисел от 1 до 7 с помощью рекурсии #10
В задании сказано не про семизначные числа, а про числа от сих и до сих)) Так что так проще
MrGluck
Ворчун
Эксперт CЭксперт С++
6634 / 3825 / 502
Регистрация: 29.11.2010
Сообщений: 10,111
19.05.2012, 15:07     Вывести все комбинации чисел от 1 до 7 с помощью рекурсии #11
Цитата Сообщение от daslex Посмотреть сообщение
В задании сказано не про семизначные числа, а про числа от сих и до сих)) Так что так проще
Сказано найти комбинации чисел из цифр от 1 до 7.
Вот смотрите: у вас 3 шарика, красный (к), голубой(г) и зеленый(з)
Вам нужно найти все комбинации этих шариков.
Вы что, просто поставите к г з и все? Это будет лишь одна комбинация возможной расстановки. А все выглядят вот так:
к г з
к з г
г к з
г з к
з к г
з г к
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.06.2012, 12:20     Вывести все комбинации чисел от 1 до 7 с помощью рекурсии
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
juli_nabieva
0 / 0 / 0
Регистрация: 19.05.2012
Сообщений: 4
07.06.2012, 12:20  [ТС]     Вывести все комбинации чисел от 1 до 7 с помощью рекурсии #12
Помогите, пожалуйста, написать программу на С.
Вот условие:
Из входного потока (терминала или файла) поступает текст, состоящий из слов, которые разделены пробелами. Между словами может быть более одного пробела.
Разобрать текст по символам, упорядочив его путем сортировки двоичным деревом. Под символами в данном случае подразумеваются лишь те, которые входят в слова. Дерево представить в виде объекта, в который включить следующие методы:
• построить дерево по тексту, заданному в файле;
• удалить поддерево с корнем, значение в котором равно заданному;
• вывести дерево на экран в наглядном виде.
• Сохранить-восстановить дерево.
Кроме этих, в объект включить метод:
- Подсчитать количество уровней в заданном поддереве, считая корень.
Yandex
Объявления
07.06.2012, 12:20     Вывести все комбинации чисел от 1 до 7 с помощью рекурсии
Ответ Создать тему
Опции темы

Текущее время: 02:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru