Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.12.2012, 17:05   #1
zink
Пользователь
 
Регистрация: 30.03.2011
Сообщений: 36
По умолчанию Вывод больших чисел, типы данных. C++

Суть проблемы в выводе больших чисел и типах данных

По заданию дана последовательность An+1=An+1/(An+1)

Вход: Номер члена последовательности
Выход: An в виде обыкновенной дроби p/q, гду p и q целые числа.

Код:
#include "stdafx.h"
#include "math.h"
#include "conio.h"
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <string>
#include <vector>
#include <fstream>
#include <clocale>
#include <iostream>

using namespace std;

void main()
{
int n;
long double p=1,q=1,pp,qq;
double a1=1;

cout<<" VVedite n"<<endl;
cin>>n;
cout<<endl;

for (int i=0;i<n;i++)
{
 pp=p*p+p*q+q*q;
 qq=p*q+q*q;
 p=pp;
 q=qq; 
 a1=a1+1/(a1+1);
 cout<<i+1<<" "<<a1<<" "<<p<<"/"<<q<<endl;
}

getch();
}

В результате выдает 6 член с плавающей запятой
а 11 уже бесконечность пишет (Вложение 1)

Как решить проблему, чтобы нормально полностью выводило?
Пошаговое умножение столбиком и сложение переменных pp qq q p не предлагать - долго это и громоздко.
Или возможно, что-то не так с форматированным выводом?


pp=p*p+p*q+q*q;
qq=p*q+q*q;

Если не понятно, это поиск числителя и знаменателя в целых числах. Если в формулу последовательности подставить вместо A p/q все приведется к такому виду
Изображения
Тип файла: png lab6.png (13.0 Кб, 134 просмотров)

Последний раз редактировалось zink; 14.12.2012 в 17:08.
zink вне форума Ответить с цитированием
Старый 14.12.2012, 17:15   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
Как решить проблему, чтобы нормально полностью выводило?
Пошаговое умножение столбиком и сложение переменных pp qq q p не предлагать - долго это и громоздко.
Тогда никак. И вообще, тип double непригоден для хранения целых чисел.
Abstraction вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Деление больших чисел artem611 Помощь студентам 2 13.03.2012 12:33
Типы данных в Delphi. Ввод, вывод данных в Delphi Dark Raven Помощь студентам 1 06.12.2011 11:38
Ввод и вывод данных на консоль четных и нечетных чисел turtles Помощь студентам 0 07.09.2011 10:34
Умножение больших чисел Relrin Помощь студентам 13 22.10.2010 20:44