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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.65
dimacat
Сообщений: n/a
#1

C++ задача - C++

04.10.2008, 19:26. Просмотров 2064. Ответов 12
Метки нет (Все метки)

Вообщем имеется задача: Рассчитайте значение e в степени x, используя формулу: e^x = 1+x/1! +x^2/2!+x^3/3!+…

Решить её можно так: не решать факториалы, а просто решения x, x/2, x/3 и т.д. доумнажать на предыдущий результат.

Вот решение:
Код
#include <iostream> 

using namespace std;

 

int main()
{
	int x;
	float e, pr;
	cout<<"Vvedite x:"<<endl;
	cin>>x;
	pr=1;
	for (int i=1; x; i++)
	{
		e=pr*x/i;
		pr=e;
	}
		cout<<e<<endl;
	return 0;
}
Вроде бы всё верно, но почему-то не выводит значение. Вернее, считает почему-то до бесконечности, насколько я понял. В чём проблема? Где рыть?
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.10.2008, 19:26
Здравствуйте! Я подобрал для вас темы с ответами на вопрос C++ задача (C++):

Задача: В некотором государстве ввели компьютерный паспорт гражданина.(задача) - Pascal
Доброго времени суток,форумчане. Хотелось бы попросить помощи в решении одной задачи от умных голов. Задача: В некотором...

Задача на перебор вариантов. Задача Л.Эйлера. Про чиновника - PascalABC.NET
Задача Л.Эйлера. Некий чиновник купил лошадей и быков на сумму 1770 талеров. За каждую лошадь он уплатил по 31 талеру, а за каждого быка по...

Задача на k-тую цифру последовательности, задача на схему Горнера. - Pascal
Ну, собственно опять прошу помощи... Задача 1: Определить k-тую цифру последовательности 1234567891011121314…, в которой выписаны подряд...

Первая смешанная задача для волнового уравнения на отрезке (задача о колебаниях ограниченной струны) методом Фурье - Дифференциальные уравнения
Решить первую смешанную задачу для волнового уравнения на отрезке (задача о колебаниях ограниченной струны) методом Фурье ...

Задача о размещении весов по ящикам (задача о рюкзаках) - Delphi
Есть упорядоченный по невозрастанию набор весов предметов w1..wn, которые необходимо распределить по ящикам способным выдержать вес V,...

Задача на файл и задача на создание очереди - Pascal
1 Дан символьный файл, содержащий, по крайней мере, один символ пробела. Удалить из файла все символы, предшествующие пробелу 2 ...

12
dimacat
1 / 1 / 0
Регистрация: 04.10.2008
Сообщений: 96
04.10.2008, 19:34 #2
Ах, да забыл ещё попросить помочь вот с такой задачей: Известно, что любое натуральное число можно представить в виде суммы не более чем четырех квадратов натуральных чисел или, что то же самое, в виде сумы четырех квадратов неотрицательных чисел (теорема Лагранжа). Дано натуральное n. Указать такие неотрицательные целые x,y,z,t, что n=x*x+y*y+z*z+t*t.

Мне написаный код не нужен. Мне нужно чтобы кто-нибудь подсказал, как это реализовать. Заранее спасибо!
0
Vourhey
Почетный модератор
6482 / 2256 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
04.10.2008, 19:35 #3
Найдите на этом форуме тему, по поводу того, что "ААА! Мое консольное окно куда-то исчезает! АА!".
0
XuTPbIu_MuHTAu
Эксперт С++
2226 / 741 / 10
Регистрация: 27.05.2008
Сообщений: 1,508
04.10.2008, 20:10 #4
"for(int i=1;x;i++)"
цикл бесконечный,x в цикле не меняется.Думаю,подразумевалось
i<=x
0
Vourhey
Почетный модератор
6482 / 2256 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
04.10.2008, 20:22 #5
консоль, все равно, закроется
А так бесконечный, да. На него даже внимания не обратил. Только из-за незнания синтаксиса, имхо.

Добавлено через 4 минуты 2 секунды
XuTPbIu_MuHTAu, что по поводу второй думаешь? Перебором можно. Но че-то не катит...
0
dimacat
1 / 1 / 0
Регистрация: 04.10.2008
Сообщений: 96
04.10.2008, 20:27 #6
2 XuTPbIu_MuHTAu: спасибо огромное. всё заработало.
2 Vourhey: но я совсем не имел ввиду, что у меня проблемы с консолью.
0
Vourhey
Почетный модератор
6482 / 2256 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
04.10.2008, 20:55 #7
Цитата Сообщение от dimacat Посмотреть сообщение
2 Vourhey: но я совсем не имел ввиду, что у меня проблемы с консолью.
Я очень рад за тебя.

Добавлено через 27 минут 50 секунд
Самое простое решение - обычным перебором:
Код
root = sqrt(n);
for (a=0;a<= root;a++) 
	for (b=a;b<=root;b++) 
		for (c=b;c<=root;c++) 
			for (d=c;d<=root;d++) 
				if ((a*a+b*b+c*c+d*d)==n) 
//Нашлось...
Но это не оптимально.
0
dimacat
1 / 1 / 0
Регистрация: 04.10.2008
Сообщений: 96
04.10.2008, 22:34 #8
хм, а что означает ошибка: 'sqrt': identifier not found, even with argument-dependent lookup ?
0
XuTPbIu_MuHTAu
Эксперт С++
2226 / 741 / 10
Регистрация: 27.05.2008
Сообщений: 1,508
04.10.2008, 22:38 #9
dimacat,
Код
#include <math.h>
Vourhey, по поводу второй подумаю
0
Vourhey
Почетный модератор
6482 / 2256 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
04.10.2008, 22:51 #10
Ну можно попробовать еще разделить на множители и с ними работать.
0
qwone
9 / 9 / 1
Регистрация: 18.08.2008
Сообщений: 129
04.10.2008, 23:03 #11
Vourhey почти верно
только циклы делать убывающими
1) x от корень из n до 1
2) у от корень из (n-x*x) до 1
3) z от корень из (n-x*x-y*y) до 1
4) t от корень из (n-x*x-y*y-t*t) до 1
разумеется если найдется одно решение оно будет не одно,а факториал 4 то есть 24
x,y,z,t равноценные в выражении

да вот еще чтобы проверить программу на глючность надо сначало проверить на числе
n=1*1+2*2+3*3+4*4=30
0
dimacat
1 / 1 / 0
Регистрация: 04.10.2008
Сообщений: 96
04.10.2008, 23:21 #12
2 Vourhey: Спасибо огромное за помощь. Вторая программа тоже заработала!
0
ytrewq
Сообщений: n/a
30.01.2009, 18:11 #13
По поводу оптимальности
Объявляем такой меп:
map <int, pair <int, int> > m;

m.clear();

for(int i = 1; i * i <= n; ++i)
for(int j = i; j * j + i * i <= n; ++j)
m[i * i + j * j] = make_pair(i, j);

for(int i = 1; i * i <= n; ++i)
for(int j = i; j * j + i * i <= n; ++j){
pair <int, int> p = m[n - i * i - j * j];
if (p.first > 0)
cout << i << " " << j << " " << p.first << " " << p.second;
}
}


писал не в среде, так что не судите строго за синтаксические ошибки
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.01.2009, 18:11
Привет! Вот еще темы с ответами:

Задача линейного программирования, транспортная задача - Методы оптимизации
Всем привет. сижу на экзамене, помогите пожалуйста решить,сроно!!! заранее спасибо.

Задача Дам или задача Восьми - Алгоритмы
помогите найти ошибку в алгоритме. не находит ответ подозреваю ошибку в k, i, j package com.company; import java.util.Arrays;...

задача Коши и краевая задача - Matlab
Помогите кто чем может))

Задача работы с массивом и задача работы с формой - C#
Помогите пожалуйста. Никак не могу разобраться с решением 2х задач: 1. Напишите приложение, которое в заголовке формы выводит ее...


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

Или воспользуйтесь поиском по форуму:
13
Yandex
Объявления
30.01.2009, 18:11
Ответ Создать тему
Опции темы

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