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

Практика - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Работа с текстом http://www.cyberforum.ru/cpp-beginners/thread46055.html
Задача C++: Даны натуральное число n, символы s1 ...,sn.. Группы символов, разделенные пробелами (одним или несколькими) и не содержащие пробелов внутри себя, будем называть словами. а) Подсчитать количество слов в данной последовательности. б) Подсчитать количество букв а в последнем слове данной последовательности. в) Найти количество слов, начинающихся с буквы б. г) Найти...
C++ Выдает ошибку в строке MyErrorExit("SetConsoleMode"); MyErrorExit: не найден идентификатор Тренируюсь в консольных приложениях, видел много примеров где используется MyErrorExit("XXXXXXXXX"); У меня при использовании этой строчки выдает ошибку MyErrorExit: не найден идентификатор. Я что-то не подключил? http://www.cyberforum.ru/cpp-beginners/thread46014.html
C++ Графический режим
Помогите пожалуйста хочу научится программировать в графическом режиме я использую Microsoft Visual Studio 2008 напишите пожалуйста программку типа "Привет мир" с коментариями
C++ Выбор компилятора по следующим критериям
Добрый день. Прошу помочь с выбором компилятора по следующим критериям (сам не знаю что выбрать): 1. Необходимо создавать просты приложения для среды Windows, с главным требованием: время отклика системы на воздействие и скорость выполнения программы. 2. Необходимо создавать два типа приложений: консольные (как наиболее быстрые) и визуальные (желательно с хорошим помощником по коду - знаний по...
C++ Класс с полем типа LPDIRECT3DDEVICE9 http://www.cyberforum.ru/cpp-beginners/thread45953.html
Можно ли создать класс с полем типа LPDIRECT3DDEVICE9? Если да - то как! Добавлено через 28 минут 19 секунд Сам разобрался просто ошибка была!
C++ Класс с полем типа map Привет, можно ли сделать класс с полем типа map<int,int>? У меня это сделать не получается - подскажите как! подробнее

Показать сообщение отдельно
odip
Эксперт С++
7155 / 3295 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
10.08.2009, 18:57     Практика
И минимальное n это , что ?
найти минимальный n, чтобы было верно: p<=(3**(n+1)-1)/2.

-1,0,+1 - это сильно напоминает троичную систему счисления, только там 0,1,2.

Добавлено через 13 минут 20 секунд
Имеем p.
Находим минимальный n, чтобы было верно: p<=(3**(n+1)-1)/2.
Нам нужно определить a[0],a[1],...,a[n].
Сдвигаем p.
p1= p+(3**(n+1)-1)/2
Далее нужно разложить число p1 в троичной системе счисления по цифрам.
b[0] - младший разряд, b[1] - следующий разряд, b[n] - старший разряд.
Пусть b[0],b[1],...,b[n] - это разложенное число p1, b[i]= 0 или 1 или 2.
Так как p1<=3**(n+1)-1, то нам не потребуется больше n+1 разряда.
Осталось сделать обратный сдвиг.
a[i]= b[i]-1;
В результате a[i]= -1 или 0 или 1.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru