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

Убрать из массива каждое второе число, пока не останется одно

18.12.2016, 16:22. Показов 2266. Ответов 9
Метки нет (Все метки)

Подскажите, надо написать программу, в которой надо будет ввести максимальное число, затем она должна убрать все вторые числа в этом диапазоне, и так, пока не останется лишь одно число. Далее его надо вывести на экран.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.12.2016, 16:22
Ответы с готовыми решениями:

Из последовательности удалять каждый K-ый элемент до тех пор, пока не останется одно число
Всем привет. Есть следующее задание: Данна последовательность длинной N (1, 2, ..., N). Дано...

Суммировать числа до тех пор, пока не останется 1 число
Почему не работает, и не говорите что 12 строчка. Pascal пишет что там ошибка но ; я поставил...

Рекурсивные функции. Разделение эл. массива, пока не останется 1 элемент
Вся суть в том что нужно взять массив из 10 элементом и разделить его на пополам (например от 1 до...

Обнулять по очереди максимальный и минимальный элементы массива, пока не останется последний.
Помогоите решить чайнику 2 задачи по c++ . 1) Дан одномерный массив положительных...

9
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
18.12.2016, 16:39 2
smeshariki
Я немного не понял вашу задачу.
1. Значит задается массив и заполняется.
2. Удаляется каждое второе число
3. Это повторяется до тех пор, пока не останется одно число
4. НО ОСТАНЕТСЯ ПЕРВОЕ ЧИСЛО.
Оно никогда не будет вторым!! Или я не так понял?
0
0 / 0 / 0
Регистрация: 18.12.2016
Сообщений: 13
18.12.2016, 16:49  [ТС] 3
1.Создаётся массив, максимальное значение которого не больше 1000000 и не меньше 1 (оно задаётся пользователем)
2.Удаляется каждое 2 число
3.Это происходит до тех пор, пока не останется одно единственное число
4.Оно выводится на экран.

Добавлено через 5 минут
echs, Вот текст задачи:
Числа от 1 до n расставлены по кругу. Вычеркиваем каждое второе чис*ло, начиная считать с 1. Составьте программу, которая определит, какое чис*ло останется последним и напечатает его. Исходное натуральное число — п (1 < п < 1 000 000).
0
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
18.12.2016, 16:56 4
smeshariki
допустим вот массив
777 555 222 1000000
удаляем каждое второе
777 222 (это осталось)
удаляем каждое второе
777 (это ответ)
Надо сделать именно это? (программно разумеется)
0
0 / 0 / 0
Регистрация: 18.12.2016
Сообщений: 13
18.12.2016, 17:00  [ТС] 5
echs, Создаётся массив, начинающийся с 1 до n числа, которое пользователь сам вводит. Затем удалять каждое второе по порядку, начиная считать с 1. Затем вывести на экран оставшееся число.
0
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
18.12.2016, 17:05 6
smeshariki
Теперь я вас понял
Надо было писать, что удаляется каждое второе
ПО РАЗМЕРУ (а я думал ПО ИНДЕКСУ)
...
Сейчас займусь программой.
0
0 / 0 / 0
Регистрация: 18.12.2016
Сообщений: 13
18.12.2016, 18:06  [ТС] 7
Цитата Сообщение от echs Посмотреть сообщение
Сейчас займусь программой
Спасибо большое, я жду.
0
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
18.12.2016, 18:18 8
примечание
Максимальное N = 31767. Просто в QBasic нельзя
создать массив размером больше 64 КБ.

QBasic/QuickBASIC
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
CLS
 
INPUT "N = "; n
DIM x(1 TO n) AS INTEGER
 
FOR i = 1 TO n
   x(i) = i
NEXT
 
i = 1
f = 1
k = n
 
DO
   IF x(i) > 0 THEN
      IF f > 0 THEN
         x(i) = 0
         f = 0
         i = i + 1
         IF i > n THEN i = 1
         k = k - 1
      ELSE
         f = 1
         i = i + 1
         IF i > n THEN i = 1
      END IF
   ELSE
      i = i + 1
      IF i > n THEN i = 1
   END IF
LOOP UNTIL k = 1
 
FOR i = 1 TO n
   IF x(i) > 0 THEN PRINT x(i)
NEXT
END
1
0 / 0 / 0
Регистрация: 18.12.2016
Сообщений: 13
18.12.2016, 18:34  [ТС] 9
echs, Большое спасибо, вы мне очень помогли.
0
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
18.12.2016, 19:15 10
небольшая опечатка
максимальное N = 32767 (вместо 31767)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.12.2016, 19:15
Помогаю со студенческими работами здесь

Одно число вставить после первого отрицательного элемента массива, второе – после последнего положительного
Вот условие - Дан одномерный массив. Надо одно число вставить после первого отрицательного элемента...

Введенное число делить на второе введенное число пока первое число не станет равным нулю
Введенное число делить на второе введенное число пока первое число не станет равным int...

Если все числа четные, каждое из них уменьшить в 2 раза, если хотя бы одно - четное, увеличить каждое число на 20%...
Даны три целых положительных числа. Если все они четные, каждое число уменьшить в два раза, если...

Каждое второе число записывать во втором стеке
У меня два стека. Входные числа: 10,9,7,8,6,5,3,4,2,1. Я хочу, чтобы каждое второе число...


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

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

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