0

Нужно переменной присвоить значение 600851475143, но ни один из типов данных языка Си не подходит. Что делать?

3 ответа 3

3

64-битные числа никто не отменял, @Иван Кущёв:

#include <stdio.h>
int main()
{
    long long i = 600851475143LL;
    printf("%lld\n", i);
    return 0;
}
1
  • c90 не гарантирует наличие long long. Это может иметь значение, если используется старая версия Visual Studio на Виндах, которая плохо поддерживает c99, который гарантирует наличие long long и что его размер по меньшей мере 64-bit (можно попробовать "%I64" и __int64 в этом случае).
    – jfs
    31 окт 2014 в 14:56
1

Используйте другой компилятор, в котором есть 64-битные типы данных. Или ключи у существующего.

0

Или использовать две переменные, в одной хранить n старших разрядов, а в другой - N-n разрядов, где N - общее число разрядов числа.

Ваш ответ

By clicking “Отправить ответ”, you agree to our terms of service and acknowledge you have read our privacy policy.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками или задайте свой вопрос.