Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 30.01.2017
Сообщений: 8

Задача на выбывание m-го человека по кругу

14.03.2017, 19:40. Показов 2499. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно сделать задание двумя способами:Массив и векторным
Даны натуральные n и m. Предполагается, что n человек встают в круг и получают номера, например, считая против часовой стрелки, 1, 2, …, n. Затем, начиная с кого – то, также против часовой стрелки отсчитывается m-й человек (поскольку люди стоят по кругу, то за n-м человеком стоит первый). Этот человек выходит из круга, после чего, начиная со следующего, снова отсчитывается m-й человек и так до тех пор, пока из всего круга не остаётся один человек. Определить:
а) номер оставшегося человека, если счёт начинался с первого человека;
б) номер человека, с которого начинался счёт, если известно, что номер оставшегося человека l.

Массивом уже сделал.Помогите с вектором.
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
#include <iostream>
using namespace std;
int main()
{
        setlocale(0, "Rus");
        int n, m, i;
        cout << "Введите количество человек в кругу:\n";
        cin >> n;
        int *a = new int[n];
        cout << "Распределение номеров против часовой стрелки: ";
        for(i = 0; i < n; i++){
                a[i] = 1;
               // cout << a[i] << ' ';
        }
        cout << endl;
        cout << "Введите m:\n";
        cin >> m;
        int col=n, temp=-1;
        while(col>1)
        {
            int temp_col=0;
            while(temp_col<m)
            {
                for(i=temp+1; i<n; i++)
                    if(a[i]==1)
                    {
                        temp_col++;
                        temp=i;
                        break;
                    }
                if(i==n)
                    for(i=0; i<temp; i++)
                    if(a[i]==1)
                    {
                        temp_col++;
                        temp=i;
                        break;
                    }
            }
            a[temp]=0;
            col--;
        }
        for(i=0; i<n; i++)
            if(a[i]==1)
            {
                printf("%d", i+1);
                break;
            }
 
        return 0;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.03.2017, 19:40
Ответы с готовыми решениями:

Рекурсия. Составьте программу, которая для заданных значений n и m, определит номер оставшегося в кругу человека
Пусть n человек встали в круг и получили номера от 1 до n по часовой стрелке. Затем, начиная с первого, по часовой стрелке отсчитывается m...

Детская игра на выбывание
Несколько N детей сидят в круге и играют в следующую игру: отсчитывает от ребенка X количество Z детей, удаляется ребенок с номером Z, а...

Замкнуть стек в кольцо и организовать выбывание элементов
Задача следующая: создать стек из произвольных строк, замкнуть его в кольцо, задать число n и организовать выбывание элементов через n...

1
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
14.03.2017, 20:58
Вместо девятой строки:
C++
1
std::vector<int> a(n);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.03.2017, 20:58
Помогаю со студенческими работами здесь

В кругу стоят N человек, от 1 до N. При ведении счета по кругу вычеркивается каждый второй человек
В кругу стоят N человек, пронумерованных от 1 до N. При ведении счета по кругу вычеркивается каждый второй человек, пока не останется один....

Задача про знакомства, человека i необходимо познакомить с Аi людьми
Уважаемые! Есть такая задачка про знакомства: &quot;Имеется N человек и целые числа А1, ..., AN; человека i необходимо познакомить с Аi...

Известны год и номер месяца рождения человека, определить возраст человека
Известны год и номер месяца рождения человека, а также год и номер месяца сегодняшнего дня (январь – 1 и т.д.). Определить возраст человека...

адресс человека по номеру телефона найти человека в питере?
скажите как мне найти адрес человека по номеру телефона в питере?

Программа с поэтапным исключением (игра "Гонки на выбывание")
Здравствуйте :) Мне нужна помощь с игрой &quot;Гонки на выбывание&quot;. Условие в фотографии снизу :) Заранее спасибо, мальчики :*


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru