Регистрация
Форум вебмастеров, разработчиков, геймеров и читеров 4cheaT
  1. Cтатус:
    Оффлайн
    Регистрация:
    22.11.2013
    Сообщений:
    56
    Благодарностей:
    0
    Баланс:
    0
    Сделки:
    0 Отзывов
    Новое
    Как выявить целое ли число? C++

    Нужно чтобы программа определяла какой вид числа появляется от корня. например:
    if (sqrt(x) != ...) {cout<<"целое число/нецелое"}
     
  2. - Реферальная программа 6.0 - премиум танк 8 уровня - ЛУЧШАЯ ЦЕНА;
    - Ранговые бои 2021. Третий сезон \ Ранги \ Лиги;
    - Выполнение новых ЛБЗ 2.0: Об.279, Химера, Эскалибур;
    - Три отметки и Поднятие статистики на любом танке.;
    - Фарм серебра и опыта – прокачка танков с нуля;
    - WOT Twitch Prime актуальный набор ;
  3. Cтатус:
    Оффлайн
    Регистрация:
    17.02.2013
    Сообщений:
    72
    Благодарностей:
    0
    Баланс:
    0
    Сделки:
    0 Отзывов
    Новое
    #include <iostream> #include <cmath> using namespace std; int main() { double x,y; cin >> x; y = sqrt(x); int z = y; if(y - (double) z == 0.0) { cout << "целое число" << endl; } else cout << "не целое число" << endl; return 0; }
     
  4. Cтатус:
    Оффлайн
    Регистрация:
    25.09.2013
    Сообщений:
    54
    Благодарностей:
    0
    Баланс:
    0
    Сделки:
    0 Отзывов
    Новое
    #include <iostream> using namespace std; bool fn(unsigned x) { return x == static_cast<unsigned>(pow(static_cast<unsigned>(sqrt(x)), 2)); } unsigned integer(const char* msg) { cout << msg; unsigned value; cin >> value; cin.ignore(cin.rdbuf()->in_avail()); return value; } int main() { while (true) puts(fn(integer("Unsigned: ")) ? "Integer" : "Real"); }
     
  5. Cтатус:
    Оффлайн
    Регистрация:
    07.07.2013
    Сообщений:
    69
    Благодарностей:
    0
    Баланс:
    0
    Сделки:
    0 Отзывов
    Новое
    double temp; if(modf(sqrt(x),&temp)>0)cout<<"дробное";
     
  6. Cтатус:
    Оффлайн
    Регистрация:
    19.09.2013
    Сообщений:
    69
    Благодарностей:
    0
    Баланс:
    0
    Сделки:
    0 Отзывов
    Новое
    auto s = sqrt(x); if (fabs(s - round(s)) < eps) { /* целое */ } else { /* нецелое */ } eps подбирать по вкусу разумеется, метод далёк от точного, если тебе нужно определять, является ли целое число полным квадратом, лучше использовать другой способ
     
  7. Cтатус:
    Оффлайн
    Регистрация:
    14.09.2013
    Сообщений:
    50
    Благодарностей:
    1
    Баланс:
    0
    Сделки:
    0 Отзывов
    Новое
    У меня выражения y = sqrt(x); if (y == ceil(y)) всегда точно определяют, что х - это полный квадрат, а корень из него - целое число. Проверено в цикле for (double x = 1; x <= 1e10; x++) Ошибок нет.
     
Смотрят тему: 1 (пользователей: 0 , гостей: 1)