Основные функции для работы с числами

Перечислим основные функции для работы с числами:

  • abs() — возвращает абсолютное значение. Прототипы функции:
#include <cstdlib> /* или #include <stdlib.h> */
int abs(int x);
long labs(long x);
long long llabs(long long x);
__int64 _abs64(__int64 x);
#include <cmath> /* или #include <math.h> */
int abs(int x);
long abs(long x);
long labs(long x);
long long abs(long long x);
float abs(float x);
float fabs(float x);
float fabsf(float x);
double abs(double x);
double fabs(double x);
long double abs(long double x);
long double fabs(long double x);
long double fabsl(long double x);

Пример:

std::cout << std::abs(-1) << std::endl; // 1
  • imaxabs() — возвращает абсолютное значение. Прототип функции:
#include <inttypes.h>
intmax_t imaxabs(intmax_t j);
typedef long long  intmax_t;

Пример:

std::cout << imaxabs(-5) << std::endl; // 5
  • pow() — возводит число x в степень y. Прототипы функции:
#include <cmath> /* или #include <math.h> */
float pow(float x, float y);
float powf(float x, float y);
double pow(double x, double y);
long double pow(long double x, long double y);
long double powl(long double x, long double y);

Пример:

std::cout << std::pow(10.0, 2) << std::endl;  // 100
std::cout << std::pow(3.0, 3.0) << std::endl; // 27
  • sqrt() — квадратный корень. Прототипы функции:
#include <cmath> /* или #include <math.h> */
float sqrt(float x);
float sqrtf(float x);
double sqrt(double x);
long double sqrt(long double x);
long double sqrtl(long double x);

Пример использования функции:

std::cout << std::sqrt(100.0) << std::endl; // 10
std::cout << std::sqrt(25.0) << std::endl;  // 5
  • exp() — экспонента. Прототипы функции:
#include <cmath> /* или #include <math.h> */
float exp(float x);
float expf(float x);
double exp(double x);
long double exp(long double x);
long double expl(long double x);
  • log() — натуральный логарифм. Прототипы функции:
#include <cmath> /* или #include <math.h> */
float log(float x);
float logf(float x);
double log(double x);
long double log(long double x);
long double logl(long double x);
  • log10() — десятичный логарифм. Прототипы функции:
#include <cmath> /* или #include <math.h> */
float log10(float x);
float log10f(float x);
double log10(double x);
long double log10(long double x);
long double log10l(long double x);
  • fmod() — остаток от деления. Прототипы функции:
#include <cmath> /* или #include <math.h> */
float fmod(float x, float y);
float fmodf(float x, float y);
double fmod(double x, double y);
long double fmod(long double x, long double y);
long double fmodl(long double x, long double y);

Пример использования функции:

std::cout << std::fmod(100.0, 9.0) << std::endl;  // 1
std::cout << std::fmod(100.0, 10.0) << std::endl; // 0
  • modf() — разделяет вещественное число x на целую и дробную части. В качестве значения функция возвращает дробную часть. Целая часть сохраняется в переменной, адрес которой передан во втором параметре. Прототипы функции:
#include <cmath> /* или #include <math.h> */
float modf(float x, float *py);
float modff(float x, float *py);
double modf(double x, double *py);
long double modf(long double x, long double *py);
long double modfl(long double x, long double *py);

Пример использования функции:

double x = 0.0;
std::cout << std::modf(12.5, &x) << std::endl;  // 0.5
std::cout << x << std::endl;                    // 12
  • div() — возвращает структуру из двух полей: quot (результат целочисленного деления x / y), rem (остаток от деления x % y). Прототипы функции:
#include <cstdlib> /* или #include <stdlib.h> */
div_t div(int x, int y);
ldiv_t div(long x, long y);
ldiv_t ldiv(long x, long y);
lldiv_t div(long long x, long long y);
lldiv_t lldiv(long long x, long long y);

Объявления структур:

typedef struct _div_t {
   int quot;
   int rem;
} div_t;
typedef struct _ldiv_t {
   long quot;
   long rem;
} ldiv_t;
typedef struct {
   long long quot;
   long long rem;
} lldiv_t;

Пример использования функции:

div_t d = std::div(13, 2);
std::cout << d.quot << std::endl;  // 6 == 13 / 2
std::cout << d.rem << std::endl;   // 1 == 13 % 2
  • imaxdiv() — возвращает структуру из двух полей: quot (результат целочисленного деления x / y), rem (остаток от деления x % y). Прототип функции:
#include <inttypes.h>
imaxdiv_t imaxdiv(intmax_t x, intmax_t y);
typedef long long  intmax_t;

Объявление структуры imaxdiv_t:

typedef struct {
   intmax_t quot;
   intmax_t rem;
} imaxdiv_t;

Пример:

imaxdiv_t d = imaxdiv(13, 2);
std::cout << d.quot << std::endl;  // 6 == 13 / 2
std::cout << d.rem << std::endl;   // 1 == 13 % 2
  • __max() — максимальное значение:
#include <cstdlib> /* или #include <stdlib.h> */
#define __max(a,b) (((a) > (b)) ? (a) : (b))

Пример:

std::cout << __max(10, 3) << std::endl; // 10
  • fmax() — максимальное значение. Прототипы функции:
#include <cmath> /* или #include <math.h> */
float fmax(float a, float b);
float fmaxf(float a, float b);
double fmax(double a, double b);
long double fmax(long double a, long double b);
long double fmaxl(long double a, long double b);

Пример:

std::cout << std::fmax(10.0, 3.0) << std::endl; // 10
  • __min() — минимальное значение:
#include <cstdlib> /* или #include <stdlib.h> */
#define __min(a,b) (((a) < (b)) ? (a) : (b))

Пример:

std::cout << __min(10, 3) << std::endl; // 3
  • fmin() — минимальное значение. Прототипы функции:
#include <cmath> /* или #include <math.h> */
float fmin(float a, float b);
float fminf(float a, float b);
double fmin(double a, double b);
long double fmin(long double a, long double b);
long double fminl(long double a, long double b);

Пример:

std::cout << std::fmin(10.0, 3.0) << std::endl; // 3

Учебник C++ (MinGW-W64)
Учебник C++ (MinGW-W64) в формате PDF

Помощь сайту

ЮMoney (Yandex-деньги): 410011140483022

ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов