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

Найти наименьшее натуральное число отсутствующее в последовательности - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Указатели на массив объектов http://www.cyberforum.ru/cpp-beginners/thread16873.html
здравствуйте! есть такой код: #include <cstdlib> #include <iostream> using namespace std; class samp {
C++ Нужны полные таблицы кодировок Очень нужны полные таблицы кодировок cp866_dos, win1251, koi-8, unicode, если есть у кого, дайте плиз Заранее спасибо http://www.cyberforum.ru/cpp-beginners/thread16861.html
C++ Вхождение буквы в строку
Дана строка М и символ А.Составить программу коорая подсчитает количество вхождений буквы в строку. #include<iostream.h> #include<conio.h> #include<math.h> #include<string.h> int main() {int i,count; char str ; char ch;
Проверка на симметричность слова C++
void main() { char line; printf("vvedite stroku\n"); scanf("%s",line); for (int i=strlen(line)-1,j=0; i!=strlen(line)/2; i--,j++) if (line != line) printf("ne palindrom\n"); else printf("palindrom\n");
C++ Работа со строками на Turbo C http://www.cyberforum.ru/cpp-beginners/thread16847.html
Помогите решить задачу на Turbo C! Найти в тексте все слова со спаренными согласными(например, это слова программирование, add, accomodation). Что,никто не знает?
C++ Матрицы на Turbo C Помогите написать задачу на Turbo C! Задача: В заданной прямоугольной матрице найти в последнем ряду первый отрицательный элемент.Все элементы столбца, где найден этот отрицательный элемент, умножить на минимальный элемент этого же столбца! Что,никто не знает? подробнее

Показать сообщение отдельно
Varlock
365 / 68 / 2
Регистрация: 25.09.2008
Сообщений: 402
27.11.2008, 17:32     Найти наименьшее натуральное число отсутствующее в последовательности
Мне кажется что у вас логика решения немного неправильная... почему обязательно отсутствующее число должно находится в [1,н+1]?
поподробней про вашу последовательность:
может она 2,4,6,8,10...? что тогда? или всятки у нас по умолчанию она 1,2,3,4,5...? и начинается ваша последовательность всегда с единицы? или она может начаться с 5-ёрки?

хотя если взять ваш вариант решения, то мы делаем во что:
есть у нас матрица с этими числами, которые последовательность.
Мы создаём матрицу на н+1 элемент булевого типа.. при желании можно и инт, не суть важно тут.
далее мы эту матрицу обнуляем полностью.
теперь в цикле проходим по всей нашей введённой последовательности и выполняем примерно такие действия:
считываем элемент из массива, если его значение меньше н+1, записываем единицу в ячейку булева массива с номером равным значению элемента.
если больше н+1, то игнорируем.
после окончания этого цикла, во втором цикле проходим по всему булеву массиву и ищем первый нолик. его номер и будет минимальным элементом.
могу набрасать примерный код, но за орфографию я не отвечаю, т.к. писать его буду в блокноте, и код на Си не писал уже давно +)))
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
for(i:=1, i<=n+1, i++)
{
    a=Posled[i];
    if a<n+1 then
        {
        BoolArr[a]:=1;
        }
    }
for(i=1, i=n+1, i++)
    {
    if BoolArr[i] == 0 then
        {
        MinEl:=i;
        //непомню как выйти из цикла фор по условию.. там какой-нить ретёрн или что подобное ещё написать +))
        }
    }
либо ещё лучше наверно во втором цикле юзать while (MinEl==0) do ...
 
Текущее время: 23:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru