Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
marina_vagina
0 / 0 / 0
Регистрация: 03.06.2013
Сообщений: 22
1

Создать функцию, которая вычисляет сумму

29.05.2016, 12:50. Просмотров 392. Ответов 3
Метки нет (Все метки)

Дано то, что на картинке.
Даже представить не могу, как написать саму рекурсию?
Пыталась много всего сделать, знаки тоже не понимаю. Чередовались бы хотя бы +-+-, а тут...
Пожалуйста, помогите.
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <cmath>
using namespace std;
int main()
{int n,s=0
cout<<"n="; cin>>n;
for(int i=1; i++)
s+=sqrt(8-pow(-1,i-1)*sqrt(8))
cout<<"s="<<s<<endl;
return 0;
}
0
Изображения
Тип файла: jpg Wu7iTuBjfp4.jpg (228.0 Кб, 12 просмотров)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.05.2016, 12:50
Ответы с готовыми решениями:

Написать функцию, которая вычисляет сумму элементов
Написать функцию, которая вычисляет сумму элементов, удовлетворяющих условию A&lt;x&lt;B. Числа А, В...

Написать функцию, которая вычисляет сумму последовательности
Начал недавно изучать С++, прошу помощи у вас, не могу написать прогу по массивам. Вот условие:...

Создать функцию, которая вычисляет значения a-tgb/b-tga
Вычислить значение y=1-tg8/8-ctg1 + 4-tg9/9-ctg4 + 7-tg11/11-ctg7 (Создать функцию, которая...

Создать функцию CirclArea(), которая вычисляет площадь круга
Создать функцию CirclArea(),которая вычисляет площадь круга. Функция должна принимать один...

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

3
Unknownx
Заблокирован
29.05.2016, 13:05 2
marina_vagina, там же ведь рекурсия, а в теме код с попыткой решения в лоб(такое решение обречено)

Добавлено через 3 минуты
Думаю как то так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <cmath>
#include <iostream>
using namespace std;
 
float calc(size_t i, size_t n){
    float res = 0;
    if( i < n )
        res = res + sqrt(8 + ((i + 1) % 2 ? -1 : 1)*calc(i + 1, n));
    else
        res =  ((i + 1) % 2 ? -1 : 1)*sqrt(8.0f);
    return res;
}
 
int main(){
    size_t n = 5;
    float  s = calc(0, n);
    cout<<s<<endl;
    return 0;
}
http://codepad.org/BgZuS4cE
2.19269
1
marina_vagina
0 / 0 / 0
Регистрация: 03.06.2013
Сообщений: 22
29.05.2016, 13:58  [ТС] 3
Спасибо, все работает, осталось только разобраться)
0
Kerry_Jr
Эксперт PHP
2249 / 2037 / 949
Регистрация: 14.05.2014
Сообщений: 5,970
Записей в блоге: 1
Завершенные тесты: 5
29.05.2016, 14:10 4
Цитата Сообщение от marina_vagina Посмотреть сообщение
Спасибо, все работает
Кроме верного чередования знаков.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <cmath>
 
int sign(std::size_t n);
 
int main()
{
    double s = 8;
    double  res = std::sqrt(s);
    std::size_t n = 5;
    //std::cin >> n;
    for (std::size_t i = n-1; i > 0 ; --i)
    {
        s = 8 + sign(i) * res;
        res = std::sqrt(s);
    }
    std::cout << res;
}
 
int sign(std::size_t n)
{
    return (n - 2) % 3 == 0 ? 1 : -1;
}
0
29.05.2016, 14:10
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.05.2016, 14:10

Вводяться 5 чисел в функцию, которая выбирает кратные 3 и вычисляет их сумму
В главной програме вводиться 5 чисел, функция выбирает кратные 3 и вычисляет их сумму.

Напишите функцию, которая вычисляет сумму цифр в заданном натуральном числе
Напишите функцию, которая вычисляет сумму цифр в заданном натуральном числе. Заголовок функции...

Написать функцию, которая рекурсивно вычисляет сумму чисел в заданном диапазоне
Написать функцию, которая рекурсивно вычисляет сумму чисел в заданном диапазоне.


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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