Найти значение числа с заданной точностью - C (СИ)
Формулировка задачи:
Найти приблизительное значение числа , с заданной точностью.
Решение задачи: «Найти значение числа с заданной точностью»
textual
Листинг программы
#include <stdio.h> #include <stdbool.h> /* Здесь точность — кол-во слагаемых. */ #define ACCURACY 500000000 int main() { long double n = 0.0f; bool negative = false; for (size_t i = 0; i < ACCURACY; i++) { /* Вычисляем абсолютное значение текущего слагаемого. */ const long double summand = 1.0f / (1 + 2*i); /* Прибавляем это значение к сумме (с учетом знака). */ n += negative ? -summand : summand; /* Чередуем знаки. */ negative = !negative; } printf("Pi/4 = 0.78539816339...\n"); printf("Answer = %.11Lf...\n", n); }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы для работы сprintf, типами данных и булевыми значениями.
- Определяем точность вычисления числа, в данном случае это 500000000 слагаемых.
- Создаем переменную типа long double с начальным значением 0.0f.
- Создаем булево значение negative равное false, оно будет использоваться для чередования знаков слагаемых.
- Запускаем цикл от 0 до ACCURACY-1, где ACCURACY определяется в начале программы.
- Внутри цикла вычисляем абсолютное значение текущего слагаемого и сохраняем его в переменной summand.
- Прибавляем значение summand к переменной n, учитывая знак (negative).
- Меняем значение negative на противоположное.
- После выполнения цикла выводим на экран значение Pi/4 и значение переменной n.