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

Вычисление степени, в которую необходимо возвести 2 для получения числа, которое <= заданному числу - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как создавать циклы? http://www.cyberforum.ru/cpp-beginners/thread865765.html
#inklude<iostream> using namescape std; int main() { ??????????????? }
C++ Найти максимальное и минимальное значения среди заданных действительных чисел Даны действительные числа x, y, z. Получить: max( x, y, z ); min( x, y, z ). http://www.cyberforum.ru/cpp-beginners/thread865758.html
C++ Вычисление среднего арифметического и среднего геометрического двух чисел
Даны два действительных положительных числа. Записать алгоритм вычисления среднего арифметического и среднего геометрического этих чисел.
Узнать является ли заданное целое число простым C++
Напишите программу, которая проверяет, является ли введенное пользователем целое число простым.
C++ Определение произведения последовательных целых чисел с использованием рекурсии http://www.cyberforum.ru/cpp-beginners/thread865754.html
Построить и записать алгоритм определения произведения последовательных целых чисел с использованием рекурсии.
C++ [Warning] character constant too long for its type Подскажите, пожалуйста, что я не так сделал? Выдает ошибки, что " character constant too long for its type " #include <iostream> #include <cmath> #include <string> #include <locale> #include <conio.h> const float PI = 3.141592; подробнее

Показать сообщение отдельно
Olivеr
 Аватар для Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
22.05.2013, 21:47     Вычисление степени, в которую необходимо возвести 2 для получения числа, которое <= заданному числу
что именно не работает?

вот вариант решения данной задачи без векторов и тд
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
 
using namespace std;
 
int main()
{
    unsigned int val;
    cin >> val;
    unsigned int mask = (1 << 31);
    short count = 31;
 
    while ( ! (val & mask) && count--) 
        mask = (mask >> 1);
        
    if ( (1 << count + 1) - val < val - (1 << count) ) ++count;
    cout << val << " is near 2^" << count;
    return 0;
}
 
Текущее время: 07:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru