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

Квадратный корень из 5 - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.63
Nyuska
0 / 0 / 0
Регистрация: 07.02.2012
Сообщений: 8
07.02.2012, 19:13     Квадратный корень из 5 #1
Здравствуйте, подскажите, пожалуйста, алгоритм вычисления квадратного корня из 5 с точностью 10 миллионов знаков
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.02.2012, 19:13     Квадратный корень из 5
Посмотрите здесь:

Уравнение на c++ (не квадратный корень) C++
Квадратный корень C++
C++ Квадратный корень
квадратный корень от интеграла C++
C++ Квадратный корень
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dimcoder
Полярный
 Аватар для dimcoder
449 / 422 / 66
Регистрация: 11.09.2011
Сообщений: 1,108
07.02.2012, 19:17     Квадратный корень из 5 #2
Цитата Сообщение от Nyuska Посмотреть сообщение
Здравствуйте, подскажите, пожалуйста, алгоритм вычисления квадратного корня из 5 с точностью 10 миллионов знаков
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <cmath>
 
int main(int argc, char *argv[])
{
    std::cout.precision(10000000);
    std::cout << sqrt(5) << std::endl;
    
    system("PAUSE >> NULL");
    return EXIT_SUCCESS;
}
http://liveworkspace.org/code/8b5f43...f0b0932e3e537b
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
07.02.2012, 19:18     Квадратный корень из 5 #3
dimcoder, И где тут 10кк знаков?
dimcoder
Полярный
 Аватар для dimcoder
449 / 422 / 66
Регистрация: 11.09.2011
Сообщений: 1,108
07.02.2012, 19:24     Квадратный корень из 5 #4
Цитата Сообщение от ForEveR Посмотреть сообщение
dimcoder, И где тут 10кк знаков?
Вот:

Цитата Сообщение от dimcoder Посмотреть сообщение
std::cout.precision(10000000);
Не знаю как там sqrt работает, но можно так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    double d = 2.23; //А долго ждать
    
    cout.precision(1000000);
 
    while ((d*d) <= 5.0)
       d += 0.000000000001;   //Ну здесь и надо вставить эти гребаные 10кк нулей
    cout << d;
    system("PAUSE > NULL");
    return EXIT_SUCCESS;
}
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
07.02.2012, 19:28     Квадратный корень из 5 #5
dimcoder, Неверный подход.
http://cplusplus.com/reference/iostr...ase/precision/ - почитайте на досуге.
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
07.02.2012, 19:31     Квадратный корень из 5 #6
dimcoder, по-моему эта задача на длинную арифметику.

Добавлено через 38 секунд
Цитата Сообщение от dimcoder Посмотреть сообщение
cout.precision(1000000);
Не получиться.
dimcoder
Полярный
 Аватар для dimcoder
449 / 422 / 66
Регистрация: 11.09.2011
Сообщений: 1,108
07.02.2012, 19:33     Квадратный корень из 5 #7
Цитата Сообщение от go Посмотреть сообщение
по-моему эта задача на длинную арифметику.
Пока не силен.
Цитата Сообщение от ForEveR Посмотреть сообщение
Неверный подход.
Как-бэ просто вариант предложил.
Цитата Сообщение от go Посмотреть сообщение
Не получиться.
Да.
Том Ардер
Модератор
 Аватар для Том Ардер
3619 / 2238 / 271
Регистрация: 15.06.2009
Сообщений: 3,921
07.02.2012, 23:04     Квадратный корень из 5 #8
Поиск в сети по запросу "цифра за цифрой корень" выдал алгоритм нахождения целочисленного корня. Пример его использования ниже:

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
#include <stdio.h>
#include <stdlib.h>
 
unsigned long sqrt_cpu_int(signed long X);
 
int main()
{
    unsigned long r[] = {500, 50000, 5000000, 500000000 };
 
    for( int j = 0; j < sizeof(r) / sizeof(r[0]); j++ )
    {
        r[j] = sqrt_cpu_int( r[j] );
        printf( "%ld\n", r[j] );
    }
 
    system( "pause" );
 
    return (EXIT_SUCCESS);
}
 
/* [url]http://www.wasm.ru/forum/viewtopic.php?id=39047[/url] */
unsigned long sqrt_cpu_int(signed long X)
{
    unsigned long  div = 1, result = 0;
 
    while (X > 0)
    {
        X -= div;
        div += 2;
        result += X < 0 ? 0 : 1;     
    }
    return result;
}
Результаты (все знаки верные):
22
223
2236
22360

Здесь на форуме должны быть алгоритмы длинной арифметики - необходимы только сложение и вычитание.
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
08.02.2012, 00:14     Квадратный корень из 5 #9
Цитата Сообщение от Том Ардер Посмотреть сообщение
алгоритм нахождения целочисленного корня.
А условие видели?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.02.2012, 01:15     Квадратный корень из 5
Еще ссылки по теме:

C++ Вычислить корень квадратный
C++ Квадратный корень числа
C++ Квадратный корень

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Том Ардер
Модератор
 Аватар для Том Ардер
3619 / 2238 / 271
Регистрация: 15.06.2009
Сообщений: 3,921
08.02.2012, 01:15     Квадратный корень из 5 #10
Цитата Сообщение от go Посмотреть сообщение
А условие видели?
Именно: задача сводится к вычислению целочисленного корня из 5 с миллионами нулей (вот здесь и нужна длинная арифметика), а потом только запятую поставить в нужном месте
Yandex
Объявления
08.02.2012, 01:15     Квадратный корень из 5
Ответ Создать тему
Опции темы

Текущее время: 06:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru