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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.10.2009, 21:07   #1
NTFF
Пользователь
 
Регистрация: 29.09.2009
Сообщений: 11
По умолчанию Задание по паскалю (S=nсуммаi=1*i*a/i!)

как решить задачу такого плана
Составить алгоритм для вычесления суммы ряда S=nсуммаi=1*i*a/i! где i натур число, a коефициент(любое значение), i! факториал числа, n, i задает пользователь с клавы и € n [1,100].
NTFF вне форума Ответить с цитированием
Старый 01.10.2009, 21:09   #2
kakawkin
Форумчанин
 
Регистрация: 21.09.2009
Сообщений: 431
По умолчанию

i=1*i*a/i!
S=n+i

так чтоль условие стоит ?
kakawkin вне форума Ответить с цитированием
Старый 01.10.2009, 21:09   #3
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

http://www.programmersforum.ru/showthread.php?t=64708
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 01.10.2009, 21:19   #4
Вавел из ГМТУ
Форумчанин
 
Регистрация: 19.06.2009
Сообщений: 896
По умолчанию

Ну хотяб название разумное.

Самое сложное будет, это получать значение факториала. Да и сумма будет такой, что в стандартные типы не влезет.

ОФТОП
У меня инженерный калькулятор максимум 50! считает.... Чемуж равно 100! ?

Последний раз редактировалось Вавел из ГМТУ; 01.10.2009 в 21:23.
Вавел из ГМТУ вне форума Ответить с цитированием
Старый 01.10.2009, 21:25   #5
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

У меня все считает:
9.332[многоцифр]e+157
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 01.10.2009, 21:28   #6
Вавел из ГМТУ
Форумчанин
 
Регистрация: 19.06.2009
Сообщений: 896
По умолчанию

Я имел ввиду ручной калькулятор. Купил за 480 руб. для института.

Ну вобщем 100! = 93326215443944152681699238856266700 4907159682643816214685929
63895217599993229915608941463976156 5182862536979208272237582
51185210916864000000000000000000000 000

Какой тип это вместит? ))
А сумма будет горазда больше.....
Вавел из ГМТУ вне форума Ответить с цитированием
Старый 01.10.2009, 21:29   #7
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

В Double не влезет?
Если нет, то тут этой, как её длинной математикой или, как её там.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 01.10.2009, 22:05   #8
Lime
Форумчанин
 
Аватар для Lime
 
Регистрация: 10.02.2009
Сообщений: 815
По умолчанию

http://www.google.ru/search?hl=ru&so...e&lr=&aq=f&oq=
Lime вне форума Ответить с цитированием
Старый 01.10.2009, 22:40   #9
ISergeyN
Maniac
Форумчанин
 
Аватар для ISergeyN
 
Регистрация: 03.01.2009
Сообщений: 450
По умолчанию

Цитата:
В Double не влезет?
Если нет, то тут этой, как её длинной математикой или, как её там.
Не влезет.. Здесь просто нужно найти рекуррентную зависимость и потом считать..

Un + 1 = (i + 1)a / (i + 1)!
Un = ai/i!

(Un + 1) / Un = ((i + 1)a / (i + 1)) * (i!/a) = (i + 1) / (i + 1)i

Решение (только на с++)

Код:
#include <iostream>

int fact(int i){
	if(i == 0) return 1;
	return i * fact(i - 1);
}
int main(){

	//---В обычном виде
	float a = 7.0f;
	float sum = 0;
	for(int i = 1; i < 6; ++i)
		sum += (float)(i*a)/fact(i);
	std::cout << sum << std::endl;


	//------------------------------
	//С преобрзованиями
	float u = a;
	sum = 0.0f;
	for(int i = 1; i < 6; ++i){
		sum += u;
		u *= (float) (i + 1) / (i*i + i);
	}

	std::cout << sum << std::endl;
	return 0;
}
Результат
Цитата:
18.9583
18.9583
Для продолжения нажмите любую клавишу . . .
Стандартные библиотеки разработаны с учетом многолетнего опыта лучших программистов и они не больны "детскими болезнями крутизны в программизме"....
ISergeyN вне форума Ответить с цитированием
Старый 01.10.2009, 22:50   #10
kakawkin
Форумчанин
 
Регистрация: 21.09.2009
Сообщений: 431
По умолчанию

а разве тип данных char не сможет удержать стоко цифр ? или тип данных string
kakawkin вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задание / Си Drozvd Помощь студентам 6 11.08.2009 06:33
Задание курсовой по с++ palochka Помощь студентам 2 03.05.2009 12:05
Непонятное задание. Dmitry81 Помощь студентам 11 11.01.2009 16:27
Задание $ user570 Фриланс 3 15.06.2008 22:11