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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 31, средняя оценка - 4.65
Koss
1 / 1 / 0
Регистрация: 28.03.2010
Сообщений: 80
#1

Вычисление числа пи - C++

29.11.2011, 20:21. Просмотров 4205. Ответов 8
Метки нет (Все метки)

Всем доброго времени суток, подскажите как в моей программе получить более тысячи знаков после запятой при вычислении числа пи и записать их в файл? я просто не пойму какой тип переменной при этом должен быть?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <cmath>
#include <math.h>
 
using namespace std;
 
int main(){
 
double pi;
 
for(double i=0; i<10; i++){
pi += (1/(pow(16,i)))*(4/((8*i)+1) - 2/((8*i)+4) - 1/((8*i)+5) - 1/((8*i)+6));
cout<<"pi= "<<pi<<endl;
    }
}
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Koss
1 / 1 / 0
Регистрация: 28.03.2010
Сообщений: 80
30.11.2011, 21:33  [ТС]     Вычисление числа пи #2
Актуально
Koss
1 / 1 / 0
Регистрация: 28.03.2010
Сообщений: 80
02.12.2011, 23:58  [ТС]     Вычисление числа пи #3
Цитата Сообщение от Koss Посмотреть сообщение
Всем доброго времени суток, подскажите как в моей программе получить более тысячи знаков после запятой при вычислении числа пи и записать их в файл? я просто не пойму какой тип переменной при этом должен быть?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <cmath>
#include <math.h>
 
using namespace std;
 
int main(){
 
double pi;
 
for(double i=0; i<10; i++){
pi += (1/(pow(16,i)))*(4/((8*i)+1) - 2/((8*i)+4) - 1/((8*i)+5) - 1/((8*i)+6));
cout<<"pi= "<<pi<<endl;
    }
}
вверх
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4661 / 2487 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
03.12.2011, 00:18     Вычисление числа пи #4
Цитата Сообщение от Koss Посмотреть сообщение
я просто не пойму какой тип переменной при этом должен быть?
double Вам точно не подойдет. Тут нужна длинная арифметика. Поищите про нее даже на форуме много написано. (Сразу предупреждаю, сам писать по этой теме код не буду)
AncinetHero
49 / 49 / 3
Регистрация: 22.05.2011
Сообщений: 326
03.12.2011, 00:21     Вычисление числа пи #5
А почему такой сложный код?

Не легче ли поделить 22 на 7?
diman94x
5 / 5 / 1
Регистрация: 13.06.2009
Сообщений: 67
03.12.2011, 00:24     Вычисление числа пи #6
"long double" попробуйте.
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4661 / 2487 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
03.12.2011, 00:27     Вычисление числа пи #7
Цитата Сообщение от AncinetHero Посмотреть сообщение
Не легче ли поделить 22 на 7?
наверное из-за точности. 22/7 - уже на третьей цифре после запятой дает не ту цифру...
Байт
Эксперт C
 Аватар для Байт
15027 / 9429 / 1377
Регистрация: 24.12.2010
Сообщений: 17,425
03.12.2011, 00:39     Вычисление числа пи #8
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от diman94x Посмотреть сообщение
"long double" попробуйте.
Не поможет. Тут действительно нужна длинная арифметика, при чем весьма изощренная - плавающая.

Добавлено через 1 минуту
Цитата Сообщение от AncinetHero Посмотреть сообщение
Не легче ли поделить 22 на 7?
Занятно. Привет от дедушки Пифагора.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.12.2011, 01:24     Вычисление числа пи
Еще ссылки по теме:

C++ Вычисление точности числа
Вычисление числа ПИ ( строки ) C++
Вычисление числа комбинаций C++
Вычисление числа пи C++
Вычисление факториала числа N C++

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

Или воспользуйтесь поиском по форуму:
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
03.12.2011, 01:24     Вычисление числа пи #9
http://gmplib.org/
Yandex
Объявления
03.12.2011, 01:24     Вычисление числа пи
Ответ Создать тему
Опции темы

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