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

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

Войти
Регистрация
Восстановить пароль
 
TAMIK
0 / 0 / 0
Регистрация: 10.09.2012
Сообщений: 3
#1

Составить алгоритм определения последовательности номеров удаляемых спортсменов - C++

10.09.2012, 16:55. Просмотров 609. Ответов 5
Метки нет (Все метки)

ребята! до завтра ришите задачу. пожалуйста. я ноль в программировании

по кругу стоят N спортсменов с номерами от 1 до N. начиная с кокого-то человека,по кругу удаляется каждый k-ый спортсмен. после каждого удаления круг смыкается. составить алгоритм определения последовательности номеров удаляемых спортсменов.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.09.2012, 16:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Составить алгоритм определения последовательности номеров удаляемых спортсменов (C++):

Найти последовательность номеров удаляемых спортсменов - C++
Добрый день! Подскажите пожалуйста, правильно ли я написал программу, а то преподаватель не согласен с ним. Вот условие задачи: По...

Жадный алгоритм для определения последовательности обхода городов. - C++
Здравствуйте! Изучаю разные транспортные алгоритмы и возник следующий вопрос. На основе данных, полученных из txt-файла формирую...

Рассчитать количество цифр в последовательности номеров - C++
Доброго времени суток, подскажите пожалуйста, в электротехнике используются числа для маркировки проводов: 301- трехфазное переменное...

Алгоритм определения периодичности - C++
Есть последовательность: и тд. Вот цикл этой последовательности: ( 11010 ) Помогите с алгоритмом, который будет определять цикл.

В целочисленной последовательности есть нулевые элементы. Создать массив из номеров этих элементов - C++
В целочисленной последовательности есть нулевые элементы. Создать массив из номеров этих элементов.

Алгоритм определения планарности графа - C++
Задача: определить планарность графа, заданного списком смежности. Натолкните на истинный код, заранее признателен

5
Kandelyabr
7 / 7 / 0
Регистрация: 03.04.2012
Сообщений: 15
10.09.2012, 17:38 #2
Чему равно k-то?
0
Ev[G]eN
iOS/Android Developer
Эксперт С++
5097 / 1535 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
10.09.2012, 17:43 #3
Kandelyabr, осмелюсь предположить, что числу, введенному с клавиатуры
1
KeyGen
384 / 291 / 6
Регистрация: 07.08.2011
Сообщений: 789
Записей в блоге: 1
10.09.2012, 17:52 #4
Если я правильно понял:

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
53
54
55
56
57
58
59
60
61
#include <iostream>
 
using namespace std;
 
int main()
{
    int sizesport;
    cout << "Введите количество спортсменов: " << endl;
    cin >> sizesport;
 
    int *mass = new int[sizesport];
    int *temp = new int[sizesport];
 
    for(int i = 0; i<sizesport; i++) temp[i] = 0;
 
    for(int i = 1; i<=sizesport; i++)
    {
        mass[i-1] = i;
    }
 
    cout << "В наличии спотсмены: \n";
    for(int i = 0; i<sizesport; i++) {cout << mass[i]; if(i+1 != sizesport) cout << ", "; else cout << ".\n";}
 
    cout << "Кого будем удалять? Введите номер. Для завершения введите q.\n";
 
    int man;
    int i_temp = 0;
    bool BL = true;
 
    while(cin >> man)
    {
        if(man<0||man>sizesport)
        {
            cout << "Такого спортсмена нет!\n";
            continue;
        }
 
        for(int i = 0; i<sizesport; i++)
        {
            if(temp[i] == man)
            {
                cout << "Вы его уже удалили!\n";
                BL = false;
            }
        }
 
        if(BL)
        {
            temp[i_temp] = man;
            i_temp++;
 
            cout << "Спортсмен под номером - " << man << " удален.\n";
        }
        else
        BL = true;
    }
 
    cout << "Удаляется каждый " << temp[1]-temp[0] << "-й спортсмен...\n";
 
    return 0;
}
Все ошибки не исключал. Бери книгу и вперед
0
Миниатюры
Составить алгоритм определения последовательности номеров удаляемых спортсменов  
TAMIK
0 / 0 / 0
Регистрация: 10.09.2012
Сообщений: 3
10.09.2012, 18:18  [ТС] #5
пример, N=3, K=2
возможные пути:1,1,1 1,2 2,1 ответ:3.

Добавлено через 2 минуты
блин. спасибо вам большое друзья. очень вам признателен
0
AnreyKazakov
Заблокирован
11.09.2012, 03:06 #6
Не мог свой динозавровский код не выложить через индексы и векторы решил, тут вводится кол-во спортсменов, с какого спортсмена будем удалять и через сколько их из круга выпинывать... Если так решать наверно в дискретной математике какая-ниб формула подходящая будет. Честно говоря, после фразы по кругу стоят N спортсменов с номерами от 1 до N, я подумал, что продолжение будет - определите общее iq спортсменов , но нет... а жаль
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
#include <iostream>
#include <vector>
#include <iterator>
int main(){
    using std::cout;using std::cin;
    using std::endl;using std::vector;
    int sum,k,f;
    cout<<"Введите количество спортсменов"<<endl;cin>>sum;
    vector<int> sport;
    for(int value=0;value!=sum;++value){
        sport.push_back(value+1);
        cout<<value+1<<" ";
        }
    sport.push_back(0);
    cout<<endl<<"Через сколько спортсменов пойдет счет?"<<endl;cin>>k;
    cout<<"С какого спортсмена начинать отсчет?"<<endl;cin>>f;
    vector<int> newsport;
    vector<int>::iterator itr;
    vector<int>::iterator itr2;
    itr=sport.begin();
    while(sum!=1){
        itr=sport.begin();
        itr+=(f-1);
        newsport.push_back(*itr);
        cout<<"спортсмен №"<<*itr<<" выбыл"<<endl<<"Оставшиеся спортсмены: "<<endl;
        --sum;
        for(itr2=sport.begin();itr2!=itr;++itr2){cout<<*itr2<<" ";}
        while(itr!=sport.end()-1){
            if(*itr==0)break;
            *itr=*(itr+1);
            if(*itr!=0){cout<<*itr<<" ";}
            ++itr;
            }
        cout<<endl; 
        int go=0;
        itr=sport.begin();
        itr+=(f-1);
        while(go!=k){
            if((*itr!=0)&&(*(itr+1)!=0)){++itr;}else{itr=sport.begin();}
            //cout<<*itr<<" "<<itr-sport.begin()+1<<" ; ";
            f=(itr-sport.begin()+1);
            ++go;
            }   
        cout<<endl;
        }
    return 0;}
Добавлено через 5 минут
На выходе массив (вектор) с номерами выбывших по очереди бедолаг спорсменов
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.09.2012, 03:06
Привет! Вот еще темы с ответами:

Алгоритм определения конца предложения - C++
Написать программу, определяющую конец предложения в текстах. В алгоритме учесть: смайлики, сокращения, инициалы, прямую речь, а также...

Алгоритм определения наличия текста в файле. - C++
Всем доброго времени суток. Собственно вопрос в теме. Есть произвольный бинарный файл, содержит набор спецсимволов типа %:?*№ и т.д. и...

Составить одномерный массив номеров строк двумерного массива - C++
Дан двухмерный целочисленный массив А(N,M). Составить одномерный массив В номеров строк этого массива

Составить одномерный массив из номеров строк двумерного массива - C++
Помогите написать программу! Дан двухмерный целочисленный массив А(M,N). Составить одномерный массив В из номеров строк этого...


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

Или воспользуйтесь поиском по форуму:
6
Yandex
Объявления
11.09.2012, 03:06
Ответ Создать тему
Опции темы

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