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

Вычислить квадратный корень из заданного целого числа, используя только побитовые операции - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Задача Озеро http://www.cyberforum.ru/cpp-beginners/thread355840.html
Напрвьте на путь истинный в решении этой задачи, вариантов много - но не на 100 баллов. Однажды мэр города Q задумался о благоустройстве мест отдыха для горожан. К своему разочарованию он обнаружил, что на территории города нет ни одного озера. В связи с этим он попросил геологов предоставить ему карту заброшенного участка местности. Карта представляет собой участок,...
C++ Сколько дней прошло с указанной даты Что-то не получается у меня никак написать такую функцию чтобы она высчитывала сколько дней прошло от default_date, не могу никак придумать нормально работающую функцию. #include <iostream> using namespace std; class Date { int d,m,y; static Date default_date; http://www.cyberforum.ru/cpp-beginners/thread355839.html
C++ playsound
суть в том что куда бы я ни добавлял функцию playsound - окно не создается. музыка играет - а окна нет. так вот вопрос: Куда её надо написать чтобы окно создавалось и воспроизводилась музыка?
C++ Подсчитать в массиве количество положительных, отрицательных чисел и нулей
Задан массив С из 8 вещественных элементов. Подсчитать в нем количество положительных, отрицательных чисел и нулей.
C++ Как измерить время выполнения отдельного участка кода? http://www.cyberforum.ru/cpp-beginners/thread355815.html
Собственно возник вопрос, каким образом измерить время выполнения того или инного учатска кода?(На винде)
C++ не правильно расчитывает время сортировки и количество сравнений и присваений Помогите разобраться в программе не правильно расчитывает время сортировки и количество сравнений и присваений #include<iostream.h> #include<stdlib.h> #include<time.h> #include<conio.h> #include<stdio.h> int dim, rep, n_comp, n_assign; double t_prog; int ar1, ar2, ar3; подробнее

Показать сообщение отдельно
Thinker
Эксперт C++
4225 / 2199 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
24.09.2011, 18:54
Честно говоря, пока не знаю как полностью заменить все операции на побитовые (добавить, конечно, просто, но все заменить...), но ваш алгоритм можно так реализовать:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
long Sqrt(long a)
{
   long i = 0, n = 1;
   while (a - n >= 0)
   {
      a -= n;
      n += 2;
      i++;
   }
   return i;
}
 
int main()
{
   printf("%ld\n", Sqrt(100));
   getchar();
   return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru