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

Рекурсия(вычислить 1*2*3*...n+2*3*4*...(n-1)+3*4*5*(n-2)+...) - C++

Восстановить пароль Регистрация
 
dima12494
0 / 0 / 0
Регистрация: 06.01.2012
Сообщений: 5
06.01.2012, 22:14     Рекурсия(вычислить 1*2*3*...n+2*3*4*...(n-1)+3*4*5*(n-2)+...) #1
дано натуральное число n. вычислить 1*2*3*...n+2*3*4*...(n-1)+3*4*5*(n-2)+...

Очень срочно!!
Заранее спасибо!!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.01.2012, 22:14     Рекурсия(вычислить 1*2*3*...n+2*3*4*...(n-1)+3*4*5*(n-2)+...)
Посмотрите здесь:

Рекурсия (на С) C++
C++ Рекурсия
C++ Рекурсия, вычислить площадь комнаты в квадратном лабиринте
Рекурсия. Вычислить значение суммы C++
C++ Рекурсия (вычислить значение выражения)
Рекурсия: вычислить сумму ряда C++
C++ Рекурсия
C++ Рекурсия: вычислить значение выражения

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
 Аватар для lemegeton
2910 / 1339 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
06.01.2012, 23:32     Рекурсия(вычислить 1*2*3*...n+2*3*4*...(n-1)+3*4*5*(n-2)+...) #2
Заранее пожалуйста.
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
#include <stdio.h>
 
long int multiplyRange(int begin, int end) {
  long int result = 1;
  while (begin <= end)
    result *= begin++;
  return result;
}
 
long int calculateInternal(int begin, int end) {
  if (begin > end) return 0;
  return multiplyRange(begin, end) + calculateInternal(begin + 1, end - 1);
}
 
long int calculate(int n) {
  return calculateInternal(1, n);
}
 
int main(int argc, char *argv[]) {
  // 1 * 2 = 2
  printf("%ld\n", calculate(2));
  // 1 * 2 * 3 + 2 = 8
  printf("%ld\n", calculate(3));
  // 1 * 2 * 3 * 4 + 2 * 3 = 30
  printf("%ld\n", calculate(4));
  // 1 * 2 * 3 * 4 * 5 + 2 * 3 * 4 + 3 = 120 + 24 + 3 = 147
  printf("%ld\n", calculate(5));
  return 0;
}

Не по теме:

Цитата Сообщение от dima12494 Посмотреть сообщение
Очень срочно!!
Очень срочно -- это во фриланс. Тут как сделают, так и сделают. Не раньше, не позже.

Байт
 Аватар для Байт
13988 / 8819 / 1230
Регистрация: 24.12.2010
Сообщений: 15,975
07.01.2012, 00:16     Рекурсия(вычислить 1*2*3*...n+2*3*4*...(n-1)+3*4*5*(n-2)+...) #3
Цитата Сообщение от lemegeton Посмотреть сообщение
Заранее пожалуйста.
Одно это дорогого стоит! А решение - изящное. Пусть пользуется твоей добротой. С праздником!
Yandex
Объявления
07.01.2012, 00:16     Рекурсия(вычислить 1*2*3*...n+2*3*4*...(n-1)+3*4*5*(n-2)+...)
Ответ Создать тему
Опции темы

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