Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 12.01.2018
Сообщений: 23
1

Найти номер человека который останется в живых

17.10.2018, 12:53. Просмотров 1037. Ответов 8
Метки нет (Все метки)

Вот задача
One of the talents that Josephus Flavius possessed was the mathematical skill, which according to legend saved his life. When the Romans trapped 40 of Flavius's followers and him, they made a death pact in which the Romans would not get them, they rather be dead. They took deadly counts in a circle of soldiers. Each third was killed. The count continued until one man was left. It was man who took 31st place in that circle. Yes, It was Flavius. He had another opinion about life, death and his special assignment in this war. Below you see the tool, which can calculate for you any amount of numbers for any picked out number and for any number left (less than total, of course). Just remember, Flavius quickly solved such a problem in his head without any computer program. Hopefully you will never be at needs to use this tool for saving your life but maybe you'll find another reason to use it.
Task: find the location(index) of the single person who remained alive.

Input.
First line contains N and M: 1<=N<=500, 1<=k<=100.


Output:
Location(index) of the single person who remained alive.

Если не сложно, можете код написать к этой задаче
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.10.2018, 12:53
Ответы с готовыми решениями:

При чистой установке windows 8 "останется в живых" диск D:/?
При выборе во время установки &quot;Ничего не сохранять&quot; удалится информация с диска D:/ а то сообщения...

Считалочка - выбытие игроков, пока не останется три человека
В круг выстраивается N-человек (N&lt;50000). Начиная с первого, неизменно движутся по кругу и...

В каждой строке матрицы найти максимум и его номер, затем номер элемента, который меньше (макс/2) и узнать его номер
Не можете подсказать, как все сделать в цикле Имеется матрицы, нужно в каждой строке найти...

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

8
74 / 58 / 31
Регистрация: 20.03.2017
Сообщений: 351
17.10.2018, 13:25 2
scorpionid,
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
#include <iostream>
#include <algorithm>
#include <vector>
 
int JeosifFunc(std::vector <int>, unsigned int);
 
int main()
{
    std::vector <int> a;
    unsigned int n, k;
    std::cout << "Enter the number of people N: "; std::cin >> n;
    std::cout << "Enter what account of the person to clean up K: "; std::cin >> k;
    int init = 1;
 
    std::generate_n(back_inserter(a), n+1, [&]
    {
        return init++;
    });
    std::cout << JeosifFunc(a, k)  << " survivor" << std::endl;
 
    system("pause");
    return 0;
}
 
int JeosifFunc(std::vector <int> a, unsigned int k)
{
    for (unsigned int i=a.size(); i>1; i--)
    {
        if(k > a.size())
            k = a.size() % k - 1;
 
        a.erase(a.begin() + k - 1);
        for (unsigned int i = 0; i < (k - 1); i++)
            a.push_back(a[i]);
 
        a.erase (a.begin(), a.begin() + k - 1);
    }
    return a[0];
}
0
Модератор
Эксперт С++
9802 / 8363 / 5091
Регистрация: 18.12.2011
Сообщений: 22,370
17.10.2018, 13:43 3
Мой вольный перевод задачи:
Одним из талантов, которыми обладал Иосиф Флавий, было математическое умение, которое, согласно легенде, спасло его жизнь.

Римляне захватили 40 последователей Флавия и его и поставили всех в круг. Каждый третий был убит. Процесс продолжался до тех пор, пока не остался один человек. Этот человек был на 31-ом месте в этом кругу. И это был Флавий.

Создайте программу, которая может определить номер оставшегося в живых для любого исходного количества солдат и любого кратного.

Просто помните, Флавий быстро решил такую проблему в своей голове без какой-либо компьютерной программы.
Надеюсь, вам никогда не понадобится использовать этот инструмент для спасения вашей жизни, но, возможно, вы найдете другую причину для его использования.
Задача: найти местоположение того человека, который останется в живых.
0
Эксперт С++
8177 / 3775 / 814
Регистрация: 15.11.2014
Сообщений: 8,584
17.10.2018, 14:20 4
zss, спасибо)
чёт я никак не найду, где тут кнопка ставить плюсик.
так что так, словами)

интересная задачка)
0
Модератор
Эксперт С++
9802 / 8363 / 5091
Регистрация: 18.12.2011
Сообщений: 22,370
17.10.2018, 15:55 5
hoggy, Вы меня удивляете:
Найти номер человека который останется в живых
0
Эксперт С++
8177 / 3775 / 814
Регистрация: 15.11.2014
Сообщений: 8,584
17.10.2018, 16:17 6
Цитата Сообщение от zss Посмотреть сообщение
Вы меня удивляете:
дык, в том то и дело, что нет у меня такой кнопки.

Кликните здесь для просмотра всего текста
может потому что я злостный рецидивист-нарушитель?
вот решила меня наказать администрация: людям спасибо говорить запретила.
0
Эксперт С++
8177 / 3775 / 814
Регистрация: 15.11.2014
Сообщений: 8,584
17.10.2018, 16:19 7
мой скриншот)
0
Миниатюры
Найти номер человека который останется в живых  
3269 / 2657 / 717
Регистрация: 25.03.2012
Сообщений: 9,582
Записей в блоге: 1
17.10.2018, 16:44 8
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>
#define max 500
int main()
{
    int n, m, count;
    std::cin >> n>>m;
    count = n;
    bool dead[500];
    for (int i = 0; i < n; ++i)
        dead[i] = false;
    int i = 0, j=0;
    while (count != 1)
    {
        while (j != m)
        {
            ++i;
            if (i == n) i = 0;
            if (!dead[i]) ++j;
        }
        dead[i] = true;
        j = 0;
        --count;
    }
    for (int i = 0; i < n; ++i)
        if (!dead[i]) std::cout << "alive: " << i << std::endl;
    return 0;
}
0
0 / 0 / 0
Регистрация: 12.01.2018
Сообщений: 23
17.10.2018, 17:00  [ТС] 9
Kuzia domovenok, а можете подробно объяснить этот код?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.10.2018, 17:00

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Найти имя человека, который умрет последним
Разрешить &quot;Проблему Джозефа&quot;. Она Состоит В Следующем: Представьте Себе, Что N Человек Решили...

Найти человека, который написал статью на сайте
Добрый день Подскажите пожалуйста как можно найти человека и(или) место откуда этот человек...

SVN найти человека, который добавил данную строчку
Работаю над проектом в команде из 6-10 челвек и часто такое бывает, что кто-то написал непонятный...

найти номер телефона человека с заданной фамилией
Задали нам задачку в институте.. А препод даже не пришел на лекцию и не рассказал что как.....


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

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

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