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

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

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

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

23.05.2009, 12:19. Просмотров 902. Ответов 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++
Есть одномерный массив длиной N, заполненный числами от -10 до 10. Найти максимальную сумму, если можно брать следующий элемент, или через...

Помогите решить задачу с использованием структуры - C++
Помогите решить задачу:Нужно ввести фамилию и узнать информацию о студенте #include<stdio.h> #include<conio.h> struct student_spisok ...

С Использованием рекурсии! - C++
Привет! Есть задачка (она уже сделанная, ее у меня приняли): Во входном файле задана последовательность положительных вещественных...

Сортировка с использованием рекурсии - C++
Здравствуйте. Задание : Написать рекурсивную функцию сортировки массива. Помогите пожалуйста найти алгоритмическую ошибку, так как...

решение задач с использованием рекурсии - C++
Ув Форумчане подскажите пожалуйста либо ресурс где это можно прочитать мне нужно эту тему расписать помогите пожалуйста :)

Алгоритм Евклида с использованием рекурсии - C++
Моя реализация алгоритма Евклида с использованием рекурсивной функции. //Program finds greatest common divisor of two natural numbers....

Задание... о золотой горе с использованием рекурсии - C++
Пути в числовом треугольнике начинаются от верхнего числа. От любого числа можно перейти к одному из двух соседних чисел в следующей...

Решение уравнения методом бисекции с использованием рекурсии - C++
Добрый день! Задачу задали в универе... Написать-то написал, сам метод халявный, но с рекурсией что-то запарился. 1....

Вычислении функции разложением ее в ряд с использованием рекурсии - C++
Составить программу вычисления заданной математической функции путем разложения ее в ряд. Программа должна применять рекурсивную функцию...

Решить задачу на C++ - C++
Пожалуйста! Очень срочно! Помогите. Нужно решить задачу на C++. Необходимо решить только под номером 24 в прикрепленном изображении....

Вычисление заданной функции разложением ее в ряд с использованием рекурсии - C++
Программа вычисляет неправильно. Видимо, я что-то упустила. Не могли бы вы мне чуть-чуть подсказать, в чем моя ошибка? ...

Не получается решить задачу - C++
Поле first — вещественное число, левая граница диапазона; поле second — вещественное число, правая граница диапазона. Реализовать метод...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Phantom
Эксперт C++
3162 / 844 / 16
Регистрация: 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++
3162 / 844 / 16
Регистрация: 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     Решить задачу с использованием рекурсии
Ответ Создать тему
Опции темы

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