Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Показать сообщение отдельно
cruzer121312
0 / 0 / 0
Регистрация: 14.11.2012
Сообщений: 21
21.11.2012, 15:40  [ТС]

Корень из 2 с точностью до 100 знаков после запятой

21.11.2012, 15:40. Просмотров 4764. Ответов 30
Метки (Все метки)

Ответ

gmpxx.h: No such file or directory.


В чем дело?

Добавлено через 29 секунд
Цитата Сообщение от grizlik78 Посмотреть сообщение
Если программирование не относится к специальности, то задание выглядит довольно жестоким. Впрочем, возможно это оттого, что я не знаю какого-то простого способа.
Пока же реализовал алгоритм извлечения квадратного корня столбиком из википедии. Подкоренное число должно быть целым. В результате получается массив цифр результата.
В принципе не очень сложно реализовать длинную арифметику для этой задачи (нужно сложение, вычитание и умножение), но я взял библиотеку gmp.
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include <iostream>
#include <vector>
#include <gmpxx.h>
 
std::vector<int> sqrt(int x, int N)
{
    std::vector<int> d, g;
    while (x > 0)
    {
        g.push_back(x % 100);
        x /= 100;
    }
    mpz_class b;
    mpz_class c;
    while (N > 0)
    {
        c *= 100;
        if (!g.empty())
        {
            c += g.back();
            g.pop_back();
        }
        else
            --N;
        int a = 0;
        while ((a + b + 1)*(a + 1) <= c && a < 9)
            ++a;
        c -= (a + b)*a;
        d.push_back(a);
        b = b * 10 + a * 20;
    }
    return d;
}
 
int main()
{
    std::cout << "length of the fractional part: ";
    int N;
    std::cin >> N;
    std::cout << "value: ";
    int v;
    std::cin >> v;
 
    std::vector<int> s = sqrt(v, N);
    int k = s.size() - N;
    std::cout << "sqrt(" << v << ")=";
    for (unsigned i = 0; i < s.size(); ++i)
    {
        if (i == k)
            std::cout << '.';
        std::cout << s[i];
    }
    std::cout << std::endl;
}
Кто может — проверяйте результат
Код
length of the fractional part: 100 
value: 2
sqrt(2)=1.4142135623730950488016887242096980785696718753769480731766797379907324784621070388503875343276415727
fatal error: gmpxx.h: No such file or directory|

Вернуться к обсуждению:
Корень из 2 с точностью до 100 знаков после запятой
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.11.2012, 15:40
Готовые ответы и решения:

Форматированный вывод с точностью до двух знаков после запятой
Здравствуйте! У меня массив заполняется дробными числами с точностью до двух...

Как в языке С++ вывести значение изменения с точностью k знаков после запятой?
Как в языке С + + вывести значение изменения с точностью k знаков после запятой?

Вывести результат вычисления одним вещественным числом с точностью до шести знаков после запятой
Необходимо написать программу, которая вычислит сумму 1+1/3+1/3(в...

Количество знаков после запятой
После запятой нужно всешжа показывать определенные число знаков, например...

Вывод n знаков после запятой
Как это сделать?

30
Другие темы раздела
C++ Рекурсивный спуск http://www.cyberforum.ru/cpp-beginners/thread698600.html
Здравствуйте помогите пожалуйста разобраться в рекурсивном спуске, который вычисляет выражения, и как считывать по одному элементу из файла( #include "stdafx.h" #include "stdlib.h" bool E();...
C++ Составить блок-схему к программе Народ!помогите блок-схему сделать!((( using namespace std; void enteringData(double*, int); void calculatingAvg(double*, int); void main() { int size = 0; cout<<"Type size of array: "; http://www.cyberforum.ru/cpp-beginners/thread698589.html
C++ Блок-схема
Народ!помогите!кто знает как блок -схему сделать!!? void main() { doublemult=1; ifstream text("text.txt"); while (!text.eof()) { double num; text>>num; cout<<num<<endl; if (num < 0) {...
Вычислить корни квадратного уравнения C++
вычислить корни квадратного уравнения ax^2 + bx+x=0с за данными коэффициэнтами а b, и с (предпологается, что a\neq 0 то что дискриминант уравнения неотрицателен
C++ 15. В некотором институте информация об имеющихся компьютерах задана двумя деревьями. В первом из них сыновьям корневой вершины соответствуют факу http://www.cyberforum.ru/cpp-beginners/thread698574.html
помогите реализовать пожайлуста программу... 15. В некотором институте информация об имеющихся компьютерах задана двумя деревьями. В первом из них сыновьям корневой вершины соответствуют...
C++ является ли разность его максимальной и минимальной цифр четным числом Дано натуральное число.Определить,является ли разность его максимальной и минимальной цифр четным числом подробнее
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru