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

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

Войти
Регистрация
Восстановить пароль
 
turtLe
3 / 3 / 2
Регистрация: 11.11.2009
Сообщений: 41
#1

Нахождение всех перестановок - C++

12.04.2010, 14:49. Просмотров 503. Ответов 0
Метки нет (Все метки)

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
51
52
#include <iostream>
#include <string>
using namespace std;
 
 
int aton(char a) // преобразование символа в номер цифры
{
    if ((a >= '0') && (a <= '9'))
        return a - '0';
    else if ((a >= 'a') && (a <= 'z'))
        return a - 'a' + 10;
    else
        return a - 'A' + 10;
}
 
int main()
{int a[10],b,i,j,k,Ls,x,z,q;
string s;
cout<<"Vvedite posledovatel'nost' chisel"<<"\n";
cin>>s;
q=0;i=1;j=1;
Ls=s.length();
for(i=1;i<Ls+1;i++) a[i]=aton(s[i-1]);
b=a[Ls];
do
{
i=Ls-1;
while(a[i]>a[i+1]) i=i-1;
j=i+1;
while(a[j]>a[i]) j=j+1;
j=j-1;
x=a[i];
a[i]=a[j];
a[j]=x;
for(k=1;k<(Ls-i+1)/2;k++)
{
    x=a[i+k];
    a[i+k]=a[Ls-k+1];
    a[Ls-k+1]=x;
}
cout<<"\n";
for(z=1;z<Ls+1;z++)
cout<<a[z];
q++;
cout<<"\n"<<q;
}
while(a[1]!=b);
cout<<"\n";
 
system("pause");
    return 0;
}
проблема состоит в том,что программа находит не все возможные перестановки.
Например
s=123
a=132
a=231
a=321

помогите разобраться в чем ошибка.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.04.2010, 14:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Нахождение всех перестановок (C++):

Выведение всех перестановок - C++
Драсте, я вот все время писал на паскале и мне с трудом дается переход на c++. Не могу сделать и простых вещей, просто не разбираюсь в...

Генерация массива всех перестановок из n элементов. - C++
Нашел по этой теме здесь на форумах такой код: #include &lt;iostream.h&gt; int X; int N; void Swap(int a,int b) { int t=X; ...

Генерация всех перестановок n элементного множества - C++
с++ 1) Напечатать все перестановки чисел от 1 до n используя рекурсивный алгоритм пример 123 132 213 231 312 321

Рекурсивная процедура печати всех перестановок из n символов - C++
&quot;Написать процедуру печати всех перестановок из n символов&quot; методом рекурсии непривычно и трудно в C++ помогите пожалуйста! ...

Вывод всех перестановок без использования массивов - C++
Вот есть такая проблема: нужно вывести все возможные перестановки чисел от 1 до n тема жутко заезженная, есть рекурсивные подходы, есть...

Поиск всех перестановок символов из строки (0..9)..пожалуйста помогите!!! - C++
ведь наверняка ктото уже писал такие алгоритмы будь то на олимпеаде или где ещё!!!..... мне в универе позарез надо это я незнаю как даже...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.04.2010, 14:49
Привет! Вот еще темы с ответами:

По перестановке определить его номер в лексикографическом перечислении всех перестановок множества - C++
По перестановке определить его номер в лексикографическом перечислении всех перестановок множества {1,2,…,n}. Формат входных данных: ...

Нахождение всех возможных путей - C++
дана матрица, нужно с 1,1(Start) обоити всеми возможными путями к А,А(Finish). здвигаться можно так если находимся в (х,у) : (х+1,у);...

Нахождение всех углов в треугольнике - C++
Найти все углы треугольника со сторонами a , b , c . Предусмотреть в программе перевод радианной меры угла в градусы, минуты и секунды. ...

Нахождение всех совершенных чисел. - C++
Разработать программу и подпрограмму (подпрограммы), выполняющие нахождение всех совершенных чисел из заданных N натуральных (совершенным...


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

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

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