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

Найти предыдущую перестановку - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сбиваются указатели при переходе между функциями http://www.cyberforum.ru/cpp-beginners/thread1491743.html
#include <iostream> #include <Windows.h> using namespace std; class Polynom { public: Polynom(int power_ = 0, float *koef_ = NULL); Polynom(Polynom &right); ~Polynom();
C++ Перевести дробное число, заданного в двоичной системе счисления, в шестнадцатеричную Дано дробное число в двоичной системе счисления, т.е. последовательность цифр 0 и 1, разделенных точкой. Составить программу перевода этого числа в шестнадцатеричную систему счисления. http://www.cyberforum.ru/cpp-beginners/thread1491733.html
Как убрать округление? C++
Доброго времени суток. Компилятор Dev-c++ выдает при делении целое вместо дробного. Пробовал setf, usetf, precision. Чёта не получается блин. Помогите набраться опыта неофиту! Заранее спасибо....
Как вывести элементы вектора, являющиеся членами класса? C++
#include <iostream> #include <vector> #include <cstdio> using namespace std; typedef struct moment{ int h,m,s; }moment; int main()
C++ Файл, данные из столбца в строку http://www.cyberforum.ru/cpp-beginners/thread1491712.html
суть есть файл, в нем записи о людях, нужно перевести записи из столбца в строку и наверное убрать лишние символы, считать началом строки "(((" концом ")))" вдруг есть у кого что нить подобное или...
C++ Вывести числа в цикле Написать простую программу с использованием цикла for подробнее

Показать сообщение отдельно
mushhr
0 / 0 / 0
Регистрация: 02.07.2015
Сообщений: 2

Найти предыдущую перестановку - C++

02.07.2015, 12:58. Просмотров 245. Ответов 2
Метки (Все метки)

Собственно, есть перестановка, нужно найти N предыдущих и M следующих.
Например для 132 предыдущей будет 123, а следующей 132.
Мой код находит следующие. Помогите найти предыдущие

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
 #include <string.h>
#include <stdio.h>
void swap(char *in, int i, int j)
{
    char c = in[i];
    in[i] = in[j];
    in[j] = c;
}
 
int main(int argc, char **argv)
{
    char * in = new char[51], x;
        int i,jj;
 
 
         scanf ("%s",in);
 
        for (jj=1; jj<=2; jj++)
        {
 
 
        for(i=strlen(in)-2; i>=0; i--) //вместо N беру пока 2
            if(in[i]<in[i+1]) break;
 
 
 
            int minPos = i+1;
            for(int j=i+1; j<strlen(in); j++)
                if(in[j]>in[i] && in[j]<=in[minPos]) minPos = j;
 
            swap(in, i, minPos);
 
 
            i++;
            for(int j=strlen(in)-1; j>i; i++, j--)
                swap(in, i, j);
 
            printf("%s ", in);
 
 
        }
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.