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

Найти сумму первых n-четных натуральных чисел (найти ошибку) - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 5.00
MEverik
0 / 0 / 0
Регистрация: 25.03.2014
Сообщений: 13
06.05.2014, 21:58     Найти сумму первых n-четных натуральных чисел (найти ошибку) #1
Нужно найти сумму первых n-четных натуральных чисел. Ошибка вылетает на 13 строке, должно быть я не правильно код составил, алгоритм не тот может. Помогите мне включить эту рекурсию
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
 int sum=0;
 int n;
 int i=2;
 cout << "Enter n: ";
 cin >> n;
 while(i<=n) 
 sum =+ i,
 next = (i=i+2);
 while(i<=n)
 sum =+ i,
 return (next);
 cout << sum;
 _getch();
 return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.05.2014, 21:58     Найти сумму первых n-четных натуральных чисел (найти ошибку)
Посмотрите здесь:

C++ Вычислить сумму квадратов первых 7 натуральных чисел
Найти 15 первых натуральных чисел, делящихся нацело 19 и находящихся в интервале , левая граница которого равна 100. C++
6.34. Найти 15 первых натуральных чисел, делящихся нацело на 19 и нахо-дящихся в интервале, левая граница которого равна 100 C++
C++ Дано натуральное число N. Найти сумму первых n натуральных чисел, которые не делятся ни на какие простые числа, кроме 2, 3 и 5
Найти 10 первых натуральных чисел, оканчивающихся на цифру 7 кратных числу 9, не меньших 100 (Pascal -> C++) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
06.05.2014, 22:04     Найти сумму первых n-четных натуральных чисел (найти ошибку) #2
MEverik, почему в строках 12,15 запятые в конце?
MEverik
0 / 0 / 0
Регистрация: 25.03.2014
Сообщений: 13
06.05.2014, 22:06  [ТС]     Найти сумму первых n-четных натуральных чисел (найти ошибку) #3
ошибка, исправил
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
06.05.2014, 22:07     Найти сумму первых n-четных натуральных чисел (найти ошибку) #4
MEverik, и рекурсия подразумевает вызов функции из самой себя. А тут кроме main() других нет.
MEverik
0 / 0 / 0
Регистрация: 25.03.2014
Сообщений: 13
06.05.2014, 22:12  [ТС]     Найти сумму первых n-четных натуральных чисел (найти ошибку) #5
как мне правильно вызвать "next", чтобы начало получатся
C++
1
2
3
int main()
int next() 
{...}
неверно?
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
06.05.2014, 22:15     Найти сумму первых n-четных натуральных чисел (найти ошибку) #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
 
int sumeven( int n )
{
    if( n == 0 ) return 0;
    return sumeven(n-1) + n * 2;
}
 
int main() 
{
    std::cout << sumeven(4) << std::endl;
    return 0;
}
Будут вопросы по коду - задавайте.
MEverik
0 / 0 / 0
Регистрация: 25.03.2014
Сообщений: 13
06.05.2014, 22:38  [ТС]     Найти сумму первых n-четных натуральных чисел (найти ошибку) #7
Я добавил функцию next, и теперь по идее ее можно возвращать, т.к. раньше ее совсем не было в задаче я так понимаю, но ошибка в {. Что то не по плану
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <conio.h>
using namespace std;
int main();
int next(int n);
{
 int sum=0;
 int n;
 int i=2;
 cout << "Enter n: ";
 cin >> n;
 while(i<=n) 
 sum =+ i
 next = (i=i+2);
 while(i<=n)
 sum =+ i
 return (next);
 cout << sum;
 _getch();
 return 0;
}
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
06.05.2014, 22:50     Найти сумму первых n-четных натуральных чисел (найти ошибку) #8
MEverik, Вы, по-моему, вообще не понимаете что делаете.
main() это главная функция, с которой начинается программа. Из нее должен быть вызов Ваших функций. В 5 строке точка с запятой не нужна. А в 4ой у main должно быть тело.
MEverik
0 / 0 / 0
Регистрация: 25.03.2014
Сообщений: 13
06.05.2014, 23:14  [ТС]     Найти сумму первых n-четных натуральных чисел (найти ошибку) #9
У меня с этим не сильно,когда я "проходил" с++ для меня это как простое начало задачи, как допустим predicates в прологе - составляющие задачи, а потом пишем задачу. Все на уровне новичка
SANYAMILITARY
7 / 7 / 3
Регистрация: 07.05.2014
Сообщений: 56
07.05.2014, 00:57     Найти сумму первых n-четных натуральных чисел (найти ошибку) #10
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include <iostream>
#include <conio.h>
 
using namespace std;
 
int PAR(int n)//простая ф-ция без рекурсии
{
    int sum(0);
    int temp(1);
    while(n>0 && temp<=n)
    {
        if(temp%2==0 && temp<=n)
        {
            sum += temp;
            temp++;
        }
        else
        {
            temp++;
        }
    }
    return sum;
}
 
int REKYRS(int n)//ф-ция использующая рекурсию
{
    if(n==0 || n==1) return 0;
    if (n%2==0 && n>0)
    {
       return n+REKYRS(n-2);
    }
    else if (n%2 > 0)
    {
        n=n-1;
        return n+REKYRS(n-2);
    }
 
}
 
 
 
int main()
{
    setlocale(LC_ALL,"Russian");
 
    cout << "Enter number n: ";
    int n;
    cin >> n;
 
    cout << "PAR :" << PAR(n) << endl;
    cout << "REKYRS :" << REKYRS(n) << endl;
 
    _getch();
    return 0;
}
Вот программа с 2-мя функциями. Выполняют туже задачу. Но одна использует рекурсию, другая нет.

Добавлено через 1 минуту
Понимаю, что программа не совсем гладкая и правильная, но как мог.
MEverik
0 / 0 / 0
Регистрация: 25.03.2014
Сообщений: 13
07.05.2014, 11:39  [ТС]     Найти сумму первых n-четных натуральных чисел (найти ошибку) #11
Цитата Сообщение от SANYAMILITARY Посмотреть сообщение
Понимаю, что программа не совсем гладкая и правильная, но как мог.
спасибо, я буду разбираться
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
07.05.2014, 11:47     Найти сумму первых n-четных натуральных чисел (найти ошибку) #12
Цитата Сообщение от MEverik Посмотреть сообщение
спасибо, я буду разбираться
Я Вам в сообщении #6 привел элементарнейший код, решающий задачу.
MEverik
0 / 0 / 0
Регистрация: 25.03.2014
Сообщений: 13
07.05.2014, 13:30  [ТС]     Найти сумму первых n-четных натуральных чисел (найти ошибку) #13
Цитата Сообщение от Tulosba Посмотреть сообщение
Я Вам в сообщении #6 привел элементарнейший код, решающий задачу.
В вашем коде я разобрался не до конца, можете пояснить строки без комментариев и там где комментарии не верные?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
 
int sumeven( int n ) // функция которую можно вызвать состоящая из n 
{
    if( n == 0 ) return 0; // если n=0, возвращаем 0
    return sumeven(n-1) + n * 2; //  иначе возвращаем функцию
}
 
int main() 
{
    std::cout << sumeven(4) << std::endl; // вывод на экран
    return 0;
}
Jewbacabra
1794 / 1509 / 541
Регистрация: 24.04.2014
Сообщений: 4,242
07.05.2014, 13:38     Найти сумму первых n-четных натуральных чисел (найти ошибку) #14
так будет еще проще:
C
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
 
int sumeven( int n )
{
    return n*(n+1);
}
 
int main() 
{
    std::cout << sumeven(50) << std::endl; // вывод на экран
    return 0;
}
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
07.05.2014, 13:41     Найти сумму первых n-четных натуральных чисел (найти ошибку) #15
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream> // подключаем заголовочный файл для обеспечения возможности вывода на экран
 
int sumeven( int n ) // функция вычисления суммы первых n четых натуральных чисел (т.е. 2+4+6 ... +n*2)
{
    if( n == 0 ) return 0; // если чисел 0, то возвращаем 0
    return sumeven(n-1) + n * 2; // иначе возвращаем функцию суммы для (n-1) и (n*2). Здесь как раз рекурсия (вызов самой себя)
}
 
int main() 
{
    std::cout << sumeven(4) << std::endl; // вывод на экран значения посчитанного для n = 4.
    return 0;
}
Добавлено через 2 минуты
Jewbacabra, молодец, что в курсе формулы алгебраической прогрессии, но ТС надо функцию с рекурсией, если я правильно понял.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.05.2014, 13:46     Найти сумму первых n-четных натуральных чисел (найти ошибку)
Еще ссылки по теме:

C++ Вычислить сумму первых десяти натуральных чисел
Найти сумму натуральных чисел, предшествующих заданному числу a C++
C++ Найти сумму натуральных чисел не превышающую 100

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

Или воспользуйтесь поиском по форуму:
Jewbacabra
1794 / 1509 / 541
Регистрация: 24.04.2014
Сообщений: 4,242
07.05.2014, 13:46     Найти сумму первых n-четных натуральных чисел (найти ошибку) #16
Tulosba, не заметил что нужна рекурсия
Yandex
Объявления
07.05.2014, 13:46     Найти сумму первых n-четных натуральных чисел (найти ошибку)
Ответ Создать тему
Опции темы

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