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

Максимальная степень двойки - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ сортировка (метод прямого выбора) http://www.cyberforum.ru/cpp-beginners/thread353115.html
Народ, подскажите почему неправильно считает количество перестановок М? Уже час голову ломаю(#include <stdio.h> #include <conio.h> #include <vcl.h> #define N 10 #pragma hdrstop //--------------------------------------------------------------------------- #pragma argsused void FillRand(int a, int n);
C++ ввод букв вместо цифр Привет. Я новичок. Подскажите как сделать так чтобы, в консольной программе при вводе букв вместо цифр выдавалось сообщение об ошибке. http://www.cyberforum.ru/cpp-beginners/thread352690.html
Считывание чисел из файла с расширением .txt C++
Решаю на с++ задачу, которая называется «Вырубка деревьев». Входными данными являются два целых числа, записанных через пробел в файле .txt. Помогите считать эти числа из файла и записать их в переменные типа int. Заранее спасибо.
Поиск места в массиве последовательности C++
Написал программу для нахождения позиции в массиве последовательности чисел #include<iostream> #include<algorithm> #include<stdlib.h> using namespace std; int main () {setlocale(LC_ALL,"Rus"); const int a1=15,b1=2; int a,b,k;
C++ Задачка по структурам http://www.cyberforum.ru/cpp-beginners/thread352672.html
Добрый вечер! Есть такая задачка... С помощью структуры соорудить что-то типа базы данных. Три поля (имя,фамилия, возраст).Ввод с клавиатуры и вывод на экран. С этим разобрался. Код ниже. А вот как добавить возможность добавления новых записей ( по желанию пользователя ) не могу понять. Сделать это надо используя массивы ( создаем новый на одну учетную запись больший, а старый удаляем,...
C++ Множественное наследование(правильно ли...образец) В книге Павловская Т.А. нарвался на такой код #include <iostream> using namespace std; class A{ // Родительский класс... public: A(int _x = 0) { x = _x: } protected; подробнее

Показать сообщение отдельно
Thinker
Эксперт C++
4221 / 2195 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
18.09.2011, 11:10     Максимальная степень двойки
Работайте с битами памяти, так намного удобнее и полезнее:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int Max_deg(int a, int b)
{
   int c = a - b, i = 0;
   if (c == 0)
      return -1;
   while ((c & 1) == 0)
   {
       i++;
       c >>= 1;
   }
   return i;
}
 
int main()
{
   printf("%d\n", Max_deg(5, 2));
   getchar();
   return 0;
}
Добавлено через 2 минуты
Цитата Сообщение от Mc_1 Посмотреть сообщение
при a=5; b=2; после длительного умножения на 2, x становится равной 0.
Так и должно быть, ибо НОД(3, 2^n)=1=2^0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru