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

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

Войти
Регистрация
Восстановить пароль
 
__Molly__
1 / 1 / 0
Регистрация: 23.05.2009
Сообщений: 8
#1

Решить задачу с использованием рекурсии - C++

23.05.2009, 12:19. Просмотров 894. Ответов 3
Метки нет (Все метки)

Функция f(n) определена для целых положительных чисел следующим образом:

f(n)=1, если n=1
или
f(n)=сумма f(nDIVi) по i от 2 до n,если n>=2
Вычислить f(k) для k=15,16,...,30. n=15
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.05.2009, 12:19     Решить задачу с использованием рекурсии
Посмотрите здесь:

Решить задачу на C++ C++
Алгоритм Евклида с использованием рекурсии C++
C++ Задание... о золотой горе с использованием рекурсии
C++ С Использованием рекурсии!
C++ Сортировка с использованием рекурсии
C++ Помогите решить задачу с использованием структуры
решение задач с использованием рекурсии C++
Решение уравнения методом бисекции с использованием рекурсии C++
Выполнить задачу с использованием рекурсии C++
C++ Вычисление заданной функции разложением ее в ряд с использованием рекурсии
C++ Вычислении функции разложением ее в ряд с использованием рекурсии

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Phantom
Эксперт C++
3161 / 843 / 15
Регистрация: 29.12.2008
Сообщений: 952
23.05.2009, 15:46     Решить задачу с использованием рекурсии #2
Вот у меня такой код получился:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
using namespace std;
int f (int n)
{
    if (n==1) return 1; 
    int sum=0;
    for (int i=2; i<=n;i++) sum+=f(n/i);
    return sum;
}
void main()
{
    for (int i=15; i<=30;i++) cout<<"f("<<i<<")="<<f(i)<<endl;
    system("pause");
}
__Molly__
1 / 1 / 0
Регистрация: 23.05.2009
Сообщений: 8
23.05.2009, 19:16  [ТС]     Решить задачу с использованием рекурсии #3
Спасибо огромное)))

Добавлено через 20 минут 23 секунды
А можно еще воросик: Как вы считаете f?Ну то есть например почему f(15)=25?Я просто не могу понять))
Phantom
Эксперт C++
3161 / 843 / 15
Регистрация: 29.12.2008
Сообщений: 952
23.05.2009, 22:39     Решить задачу с использованием рекурсии #4
f(15) = /по формуле, которая приведена/ = f(7) + f(5) + f(3) + f(3) + f(2) + f(2) + f(1) + f(1) + f(1) + f(1) + f(1) + f(1) + f(1) + f(1) = /т.к. f(1)=1/ =
f(7) + f(5) + f(3) + f(3) + f(2) + f(2) + 8 =
= [f(3)+f(2)+f(1)+f(1)+f(1)+f(1)]+[f(2)+f(1)+f(1)+f(1)]+[f(1)+f(1)]+[f(1)+f(1)]+(f(1))+(f(1))+8 =
[f(3)+f(2)+4]+[f(2)+3]+2+2+1+1+8 = f(3)+f(2)+f(2)+21 = 2+1+1+18 = 25
n Div i - это целая часть от деления n на i (например, 15 div 2 = 7).
Вот как-то так
Yandex
Объявления
23.05.2009, 22:39     Решить задачу с использованием рекурсии
Ответ Создать тему
Опции темы

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