Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Рекурсивный спуск http://www.cyberforum.ru/cpp-beginners/thread698600.html
Здравствуйте помогите пожалуйста разобраться в рекурсивном спуске, который вычисляет выражения, и как считывать по одному элементу из файла( #include "stdafx.h" #include "stdlib.h" bool E(); bool T(); bool F(); bool N(); {
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) { mult*=pow(num,2);
Вычислить корни квадратного уравнения C++
вычислить корни квадратного уравнения ax^2 + bx+x=0с за данными коэффициэнтами а b, и с (предпологается, что a\neq 0 то что дискриминант уравнения неотрицателен
C++ 15. В некотором институте информация об имеющихся компьютерах задана двумя деревьями. В первом из них сыновьям корневой вершины соответствуют факу http://www.cyberforum.ru/cpp-beginners/thread698574.html
помогите реализовать пожайлуста программу... 15. В некотором институте информация об имеющихся компьютерах задана двумя деревьями. В первом из них сыновьям корневой вершины соответствуют факультеты, факультеты в свою очередь делятся на кафедры, кафедры могут иметь в своем составе лаборатории. Компьютеры могут быть установлены в общих факультетских классах, на кафедрах, в лабораториях...
C++ является ли разность его максимальной и минимальной цифр четным числом Дано натуральное число.Определить,является ли разность его максимальной и минимальной цифр четным числом подробнее

Показать сообщение отдельно
grizlik78
Эксперт C++
 Аватар для grizlik78
1882 / 1414 / 101
Регистрация: 29.05.2011
Сообщений: 2,958
19.11.2012, 00:23     Корень из 2 с точностью до 100 знаков после запятой
Если программирование не относится к специальности, то задание выглядит довольно жестоким. Впрочем, возможно это оттого, что я не знаю какого-то простого способа.
Пока же реализовал алгоритм извлечения квадратного корня столбиком из википедии. Подкоренное число должно быть целым. В результате получается массив цифр результата.
В принципе не очень сложно реализовать длинную арифметику для этой задачи (нужно сложение, вычитание и умножение), но я взял библиотеку 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
 
Текущее время: 10:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru