Форум программистов, компьютерный форум 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
15.05.2013, 13:31     Вычисление степени, в которую необходимо возвести 2 для получения числа, которое <= заданному числу
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
#include <iostream>
#include <cmath>
#include <vector>
#include <iomanip>
 
using namespace std;
 
int main()
{
    vector<unsigned> bin(32);
    for (size_t i = 0; i != 32; i++)
        bin[i] = pow(2, i);
 
    unsigned val, idx = 1;
    cin >> val;
 
    while ( bin[idx] < val )
        ++idx;
 
    if (!val)
        cout << "2^0 = 1";
    else if ( (bin[idx] - val) < (val - bin[idx - 1]) )
        cout << "2^" << idx << " = " << fixed << setprecision(0) << pow(2, idx);
    else cout << "2^" << idx - 1 << " = " << fixed << setprecision(0) << pow(2, idx - 1);
 
    return 0;
}
 
Текущее время: 05:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru