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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Задача Озеро http://www.cyberforum.ru/cpp-beginners/thread355840.html
Напрвьте на путь истинный в решении этой задачи, вариантов много - но не на 100 баллов. Однажды мэр города Q задумался о благоустройстве мест отдыха для горожан. К своему разочарованию он...
C++ Сколько дней прошло с указанной даты Что-то не получается у меня никак написать такую функцию чтобы она высчитывала сколько дней прошло от default_date, не могу никак придумать нормально работающую функцию. #include <iostream>... 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>... подробнее

Показать сообщение отдельно
lemegeton
2925 / 1354 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
25.09.2011, 00:59
Как-то так.
C++
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
#include <iostream>
 
int add(int a, int b) {
    do {
    int x = a & b;
    int y = a ^ b;
    a = x << 1;
    b = y;
  } while (a);
  return b;
}
 
int sub(int a, int b) {
  return add(a, add(~b, 1)); // a = a + (~b + 1)
}
 
int sqareRoot(int n) {
  int i = 1;
  int count = 0;
  while (sub(n, i) >= 0) {
    n = sub(n, i);
    count = add(count, 1);
    i = add(i, 2);
  }
  return count;
}
 
int main(int argc, char *argv[]) {
  int m = 25;
  std::cout << sqareRoot(m) << std::endl;
    return 0;
}
Представление в двоичном виде сделаете самостоятельно, благо можно скопипастить из тысяч тем.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru