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

1101001000 - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Метод итерации для решения СНАУ http://www.cyberforum.ru/cpp-beginners/thread971898.html
Написал программу для решения СНАУ методом итерации, но столкнулся с проблемой. После присвоения элементам матриц matn, matHn, matKn определенных значений, при выводе этих матриц, да и при работе с...
C++ Наследование , зачем оно нужно ? Добрый день , который день бьюс с темой Добавлено через 3 минуты Понимаю что можно создавать классы окон в Windows от родительского используя функции родителя. Но как на практике без учебника... http://www.cyberforum.ru/cpp-beginners/thread971861.html
C++ Проверка есть ли элемент в векторе
Если уже есть такой то увеличить счетчик для этого элемента, если нет то добавить. Как это сделать?
C++ Как на SDL 2 нарисовать пиксель?
Делаю урок, но он для SDL 1.2, а во второй версии нету функции SDL_SetVideoMode(), и хоть я создаю окно, как переделать этот урок под версию 2.0, так и не понял. Везде искал, даже доков на...
C++ Разбор кода http://www.cyberforum.ru/cpp-beginners/thread971818.html
Есть такой код. #include<vcl.h> #pragma hdrstop #pragma argsused #include <dos.h> #include <stdio.h> #include <windows.h> #include <conio.h> #include <winnt.h> staticintmaxindex;
C++ Добавить несколько функций привет всем) вот есть код на С++ в консольном приложении VS 2008 - калькулятор с функциями сложения, вычитания, умножения и деления. Дополните пожалуйста его еще четырьмя функциями, а то я не могу че... подробнее

Показать сообщение отдельно
Ilot
Модератор
Эксперт С++
1811 / 1168 / 229
Регистрация: 16.05.2013
Сообщений: 3,082
Записей в блоге: 5
Завершенные тесты: 1
08.10.2013, 10:53
Будьте проще. Если нумеровать позицию с нуля то единица будет стоять на месте n(n +1)/2. Очевидно делаем цикл по n пока n(n +1)/2 меньше заданного числа.
C++
1
2
3
4
5
6
7
8
9
10
11
bool func (int numer)
{
    int n = 0;
    while((n * (n + 1))/2 <= numer)
    {
        if ((n * (n + 1))/2 == numer)
            return true;
        n++;
    }
    return false;
}
На чистоту кода не претендую накидал за пару минут.
p.s.Коль есть ограничение по времени используйте побитовое смещение вместо деления на два. Говорят оно швытче работает
p.s.s.Можно еще ввести переменную temp = (n(n +1)) >> 1. Будет еще меньше вычислений
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru