0 / 0 / 0
Регистрация: 05.12.2019
Сообщений: 6
1

Задача Джозефуса

05.12.2019, 09:03. Показов 3379. Ответов 10
Метки нет (Все метки)

Помогите пожалуйста я не могу соединить код с кнопками,это задача Джозефуса.Надо сделать чтобы я писал в edit1 n,edit2 m
И когда нажимаешь на ок, ответ должен выходить в label.
ВОТ САМ КОД

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
#include <iostream>
#include <vector>
 
using namespace std;
 
int main()
{
    int N, K, p, t, L;
    cin >> N >> K;
    vector<int>A(N);
    for (int i = 0; i < N; i++)
    {
        A[i] = i + 1;
    }
    if (N == 2)
    {
        if (K % 2 == 0)
            cout << A[0] << endl;
        else
            cout << A[1] << endl;
    }
    else
    {
        L = 0;
        while (A.size() != 1)
        {
            p = 0;
            while (p < K + 1 - L)
            {
                t = A[A.size() - 1];
                for (int i = A.size() - 1; i >= 0; i--)
                {
                    A[i] = A[i-1];
                }
                A[0] = t;
                p++;
            }
            A.pop_back();
            L++;
        }
        if (K % 2 == 0)
            cout << A[0] << endl;
        else
            cout << A[1] << endl;
    }
    system("pause");
    return 0;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.12.2019, 09:03
Ответы с готовыми решениями:

Обратная задача Джозефуса
можно ли зная номер выжившего человека, определить того с которого все начиналось?

Исходники задачи Джозефуса на VB
Скиньте кто-нибудь мне исходники задачи Джозефуса на VB, если есть такие кто знает как она...

[ArrayList vs LinkedList perfomance] Считалка Джозефуса
Задача: в кругу стоят человек, пронумерованных от 0 до (n-1). При ведении счета по кругу...

Олимпиадная задача по программированию. PascalABC.NET. Задача L. Переключение между окнами
Когда пользователь работает в операционной системе Winux, у него часто запущено несколько...

10
Модератор
Эксперт С++
12069 / 9753 / 5897
Регистрация: 18.12.2011
Сообщений: 26,183
05.12.2019, 10:01 2
Цитата Сообщение от GALIMOK Посмотреть сообщение
чтобы я писал в edit1 n,edit2 m
Что такое edit1,edit2? имена переменных?
Ну так переименуйте N в edit1, а m у Вас в коде нет (наверное Вы имели ввиду K).
Но я бы не советовал так переименовывать переменные из-за бессмысленности такового.
Цитата Сообщение от GALIMOK Посмотреть сообщение
И когда нажимаешь на ок
А где ее (ok) взять? вывести в консоли текст "ok" и ждать нажатие клавиши enter?
После 40 строки вставьте
C++
1
2
cout<<"OK\n";
system("pause>NUL");
0
995 / 656 / 313
Регистрация: 22.02.2018
Сообщений: 1,892
Записей в блоге: 2
05.12.2019, 10:13 3
zss, Похоже, что Edit-ы - это компоненты ввода на форме, также как и Label и Button ("OK"), вроде как ТС-у на билдере надо сделать или с WinForm.
0
Модератор
Эксперт С++
12069 / 9753 / 5897
Регистрация: 18.12.2011
Сообщений: 26,183
05.12.2019, 10:21 4
TrollHammer, Я знаю, но похоже, что ТС сам не понимает, в какой системе он программирует.
0
0 / 0 / 0
Регистрация: 05.12.2019
Сообщений: 6
06.12.2019, 08:51  [ТС] 5
В c++. Builder,надо создать полноценную программу,с кнопками и все такое,а не в консоли.
0
Модератор
7944 / 5241 / 2174
Регистрация: 21.01.2014
Сообщений: 22,544
Записей в блоге: 3
06.12.2019, 12:55 6
Ой мама дорогая... Задача Иосифа Флавия (она же задача Джозефа) решается как минимум в 4 раза короче...
код
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
using namespace std;
int main() {
    int n, k, p;
    cin >> n >> k;
    int person = 0;
    for (int count = 2; count <= n; count++) person = (person + k) % count;
    cout << person+1;
    return 0;
}

Цитата Сообщение от GALIMOK Посмотреть сообщение
надо создать полноценную программу
Мне всегда интересно, почему приложение "с кнопками и все такое" - это "полноценная программа", а консольное приложение, будь оно во сто крат грамотнее и оптимальнее, чем GUI - унтерменш какой-то... Вам не нравится черное окно? Да Вы, батенька, расист!!!
3
0 / 0 / 0
Регистрация: 05.12.2019
Сообщений: 6
06.12.2019, 13:00  [ТС] 7
У меня задача такая что поделаешь.Я учусь в ВТиПО
0
Модератор
7944 / 5241 / 2174
Регистрация: 21.01.2014
Сообщений: 22,544
Записей в блоге: 3
06.12.2019, 13:10 8
Лучший ответ Сообщение было отмечено GALIMOK как решение

Решение

Цитата Сообщение от GALIMOK Посмотреть сообщение
У меня задача такая
Какая "такая"? Невесть чего нагородить вместо нормального продуманного алгоритма?

Добавлено через 7 минут
Вот, держите код для кнопки. Интерфейс и "все такое" сами сделаете
C++
1
2
3
4
5
6
7
8
9
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  int N, K;
  if((!TryStrToInt(Edit1->Text, N)) || (!TryStrToInt(Edit2->Text, K)) || N <= K) return;
  int P = 0;
  for(int count = 2; count <= N; count++)
    P = (P + K) % count;
  Label1->Caption = IntToStr(P + 1);
}
1
0 / 0 / 0
Регистрация: 05.12.2019
Сообщений: 6
18.12.2019, 07:56  [ТС] 9
Ошибок нет,но систем пауза не работает
0
Модератор
7944 / 5241 / 2174
Регистрация: 21.01.2014
Сообщений: 22,544
Записей в блоге: 3
18.12.2019, 08:33 10
GALIMOK, какая еще "систем пауза", если Вы делаете GUI-приложение?
0
0 / 0 / 0
Регистрация: 05.12.2019
Сообщений: 6
18.12.2019, 09:35  [ТС] 11
Блин теперь ошибка сf1005 Include files nested too deep
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.12.2019, 09:35
Помогаю со студенческими работами здесь

Васильев C# Глава 7 задача 8 (Просьба объяснить формулировку(задача внутри)
Текст задачи Напишите программу с классом, у которого есть текстовое поле. Значение текстовому...

Васильев C# Глава 8 задача 2 (Просьба объяснить формулировку(задача внутри)
Текст задачи Написать программу , в которой есть класс с полем, являющимся ссылкой на одномерный...

Задача: В некотором государстве ввели компьютерный паспорт гражданина.(задача)
Доброго времени суток,форумчане. Хотелось бы попросить помощи в решении одной задачи от умных...

Задача на k-тую цифру последовательности, задача на схему Горнера.
Ну, собственно опять прошу помощи... Задача 1: Определить k-тую цифру последовательности...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru