Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

Сумма чисел с рекурсией - C++

19.02.2014, 14:30. Просмотров 351. Ответов 8
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 #include <iostream>
using namespace std;
 
 
int sumchisel(int a,int b)
{
    setlocale(0, "rus");
    int sum = 0;
    for (int i = a; i <= b; i++)
        sum += i;
    return sum;
}
 
void main(){
    cout << "Enter a, b:\n ";
    int a, b;
    cin >> a>>b;
    cout << "сумма " << sumchisel(a, b) << endl;
}
Добавлено через 1 минуту
anmartex, если можешь на этом моем коде пояснить рекурсию.. что то я не сильно понимаю ее
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.02.2014, 14:30
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Сумма чисел с рекурсией (C++):

Если сумма двух чисел меньше 1, то большее из чисел заменить их произведением - C++
помогите решить в С++. Если сумма двух действительных чисел x и y меньше 1, то большее из чисел x и y заменить их произведением. В...

Определить номер строки массива натуральных чисел, сумма чисел которой наибольшая - C++
Сформировать массив натуральных чисел с M рядков и N столбцов.Определить номер рядка, сумма чисел которого наибольшая.

Посчитать количество чисел, больших 0 и меньших N, сумма чисел которых и их реверс являются палиндромом - C++
объясните пож не совсем понимаю задание

Написать программу, которая получает десять чисел и выводит их в консоль в виде шестиугольника, в середине которого отображается сумма всех этих чисел - C++
Извиняюсь за нагласть ну ето я ваще не понимаю как делать !

Дан массив из 9 целых чисел. Найти сумму элементов массива и, если она четная, вывести сообщение "Сумма четная", в противном случае напечатать "Сумма - C++
Дан массив из 9 целых чисел. Найти сумму элементов массива и, если она четная, вывести сообщение &quot;Сумма четная&quot;, в противном случае...

Сумма чисел. - C++
Сумма чисел. Рассчитать сумму заданные числа N число. Входные данные содержат N, а затем N чисел. Input Output 3 1 2 1 4 2 ...

8
Тамика
Котовчанин
918 / 462 / 145
Регистрация: 16.02.2010
Сообщений: 3,264
Записей в блоге: 28
19.02.2014, 14:32 #2
Цитата Сообщение от Staffi Посмотреть сообщение
rn sum;
Цитата Сообщение от Staffi Посмотреть сообщение
если можешь на этом моем коде пояснить рекурсию.. что то я не сильно понимаю ее
У Вас в коде нет рекурсии.
0
Staffi
0 / 0 / 0
Регистрация: 05.02.2014
Сообщений: 26
19.02.2014, 14:36  [ТС] #3
Тамика, я знаю я пытаюсь на маленьких кодах понять как ее сделать. этот я писал без рекурсии
0
anmartex
...
1708 / 1201 / 497
Регистрация: 12.02.2013
Сообщений: 1,978
19.02.2014, 14:37 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
int sumchisel(int a, int b) {
    if (b < a) {
        return 0;
    }
    return a + sumchisel(a + 1, b);
}
1
KOPOJI
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16711 / 6633 / 433
Регистрация: 12.06.2012
Сообщений: 19,880
Завершенные тесты: 1
19.02.2014, 14:37 #5
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;
 
 
int sumchisel(int a,int b)
{
    return a < b ? b + sumchisel(a, b - 1) : a;
}
 
int main(){
    cout << "Enter a, b:\n ";
    int a, b;
    cin >> a>>b;
    cout << "сумма " << sumchisel(a, b) << endl;
    return 0;
}
?
1
Тамика
Котовчанин
918 / 462 / 145
Регистрация: 16.02.2010
Сообщений: 3,264
Записей в блоге: 28
19.02.2014, 14:41 #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void sum_numbers(int a,int b, int& sum)
{
    sum += a;
    if (a == b) return;
    sum_numbers(++a, b, sum);
}
 
int main()
{
    std::cout << "Enter a, b:\n ";
    int a, b, sum = 0;
    std::cin >> a>>b;
    sum_numbers(a,b,sum);
    std::cout << "sum " << sum << std::endl;
}
Вот Вам рекурсия.
1
Kastaneda
Jesus loves me
Эксперт С++
4749 / 2953 / 242
Регистрация: 12.12.2009
Сообщений: 7,491
Записей в блоге: 2
Завершенные тесты: 1
19.02.2014, 14:50 #7
Цитата Сообщение от Staffi Посмотреть сообщение
я пытаюсь на маленьких кодах понять как ее сделать
вот, должно помочь понять
1
Staffi
0 / 0 / 0
Регистрация: 05.02.2014
Сообщений: 26
19.02.2014, 15:04  [ТС] #8
Kastaneda, спасибо за текст.. он мне очень пригодится .. но на данный момент трудно воспринимается стек..

Добавлено через 2 минуты
anmartex, если можно ..вопрос.. я пытаюсь переписать функцию (спасибо я ее понял(рекурсию)) что бы если a>b то b + sumchisel(b + 1, a) то программа слетает.. должно еще что-то быть в коде..
C++
1
2
3
4
5
6
int sumchisel(int a, int b) {
    if (b < a) {
        return b + sumchisel(b + 1, a);
    }
    return a + sumchisel(a + 1, b);
}
я так понял это не верно,?:
0
anmartex
...
1708 / 1201 / 497
Регистрация: 12.02.2013
Сообщений: 1,978
19.02.2014, 15:54 #9
Staffi, самое ошибочное в вашем примере - нет условия для завершения рекурсии.
C++
1
2
3
4
5
6
int sumchisel(int a, int b) {
    if (b == a) {
        return a;
    }
    return a + sumchisel((a < b) ? (a + 1) : (a - 1), b);
}
0
19.02.2014, 15:54
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.02.2014, 15:54
Привет! Вот еще темы с ответами:

сумма 2х чисел - C++
написать программу,которая запрашивает 2 целых числа.Затем высчитывает сумму 2х рандомных чисел,находящихся на промежутке от 2х...

Сумма чисел - C++
Здравствуйте, как написать в С++ (Dev C++), например: int a=123456789; А в программе будет сложение каждого числа (1+2+3+4+5+6+7+8+9).

Сумма чисел - C++
#include &lt;iostream&gt; using namespace std; int main() { int s; cin &gt;&gt; n; for (int i = 50; i &lt;=100; ++i); cout &lt;&lt; i &lt;&lt; endl;...

Сумма чисел - C++
Найти сумму всех чисел кратных 3 или 5 меньше ил равно 1000. Ошибок компиляции нет, но выводит число какое то нереальное. #include...


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

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

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