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

Минимальное положительное целое число - C++

Восстановить пароль Регистрация
 
CoRReS
0 / 0 / 0
Регистрация: 17.10.2012
Сообщений: 61
09.10.2013, 11:14     Минимальное положительное целое число #1
Братья,нужна помощь.
Вычислить минимальное положительное целое число, которое не является точно представимым в типе double.
Как найти минимальное положительное в типе double не имею даже представления,может кто хотя бы объяснить теор. часть.
Заранее спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.10.2013, 11:14     Минимальное положительное целое число
Посмотрите здесь:

Дано целое число. Вывести его строку-описание вида «отрицательное чет-ное число», «нулевое число», «положительное нечетное число» и т. д. C++
C++ Найти минимальное положительное число.
Целое положительное число m записывается в 16-ой системе счисления и разряды в этой записи переставляются в обратном порядке. Получившиеся число прини C++
C++ Найти наименьшее целое положительное число K, квадрат которого превосходит N
Дано целое положительное число. Проверить истинность высказывания: «Данное число является четным двузначным» C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Algoritmer
 Аватар для Algoritmer
155 / 95 / 13
Регистрация: 07.03.2013
Сообщений: 477
Записей в блоге: 1
09.10.2013, 11:26     Минимальное положительное целое число #2
Вот что нашел в инете:
"Minimum value for double: 2.22507e-308"
Fyret
184 / 170 / 13
Регистрация: 30.07.2013
Сообщений: 359
09.10.2013, 12:04     Минимальное положительное целое число #3
Берем некое положительное число, конвертируем его в double, а потом обратно в целочисленный тип. Если полученное число не равно рассматриваемому - все, double его представляет неточно.

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>
 
bool undoublable( long l )
{
    double d = static_cast< double >( l );
    return l != static_cast< long >( d );
}
 
int main()
{
    const long bigStep = 1000000000L;
    
    long i = 1;
    for( ; i > 0; i += bigStep )
    {
        if( undoublable( i ) )
        {
            break;
        }
    }
    
    for( long k = i - bigStep; k <= i; ++k )
    {
        if( undoublable( k ) )
        {
            std::cout << "Min undoublable: " << k << std::endl;
            break;
        }
    }
    
    return 0;
}
CoRReS
0 / 0 / 0
Регистрация: 17.10.2012
Сообщений: 61
15.10.2013, 21:08  [ТС]     Минимальное положительное целое число #4
Цитата Сообщение от Fyret Посмотреть сообщение
Берем некое положительное число, конвертируем его в double, а потом обратно в целочисленный тип. Если полученное число не равно рассматриваемому - все, double его представляет неточно.

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>
 
bool undoublable( long l )
{
    double d = static_cast< double >( l );
    return l != static_cast< long >( d );
}
 
int main()
{
    const long bigStep = 1000000000L;
    
    long i = 1;
    for( ; i > 0; i += bigStep )
    {
        if( undoublable( i ) )
        {
            break;
        }
    }
    
    for( long k = i - bigStep; k <= i; ++k )
    {
        if( undoublable( k ) )
        {
            std::cout << "Min undoublable: " << k << std::endl;
            break;
        }
    }
    
    return 0;
}
У меня не работает и ничего не высчитывает
Yandex
Объявления
15.10.2013, 21:08     Минимальное положительное целое число
Ответ Создать тему
Опции темы

Текущее время: 21:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru