Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.11.2020, 23:04   #1
iTz_Valik
Новичок
Джуниор
 
Регистрация: 08.04.2020
Сообщений: 3
По умолчанию Использование прототипов и рекурсивных функций c++

Помогите пожалуйста,вычислить сумму цифр числа не используя дополнительные массивы, строки или циклы,продемонстрировать работу функции на примере массива натуральных чисел, к каждому из которых применив функцию подсчета суммы цифр, и среди чисел массива найти число с максимальной / минимальной суммой.Язык с++,помогите закончить

Код:
int GetLastDigit(int & i)
{
    int r{i % 10};
    i /= 10;
 
    return r;
}
 
int Sum(int i)
{
    int t{GetLastDigit(i) };
    if (i) return Sum(i) + t;
}
 
int main()
{
    int i{123456};
    int s{Sum(i) };
 
    return 0;
}

Последний раз редактировалось BDA; 29.11.2020 в 23:45.
iTz_Valik вне форума Ответить с цитированием
Старый 30.11.2020, 00:44   #2
Desc
Участник клуба
 
Аватар для Desc
 
Регистрация: 21.11.2007
Сообщений: 1,063
По умолчанию

Код:
// sum.cpp: определяет точку входа для консольного приложения.
 
#include <iostream>
 
unsigned long int sum(unsigned long int);// объявление рекурсивной функции
int i = 1; // объявление глобальной переменной для подсчета рекурсивных вызовов
unsigned long int result; // глобальная переменная хранения возвращаемого результата 
 
int main(int argc, char* argv[])
{    
       int n (6); // фиксированное значение количества слагаемых
       for (int k = 1; k <= n; k++ )
       {
        std::cout << "summa " << k << " = " << sum(k) << std::endl; // вызов рекурсивной функции
       }
       return 0;
}
//-----------------------------------------
// рекурсивная функция для нахождения суммы слагаемых
 
unsigned long int sum(unsigned long int s)
{
       if (s == 1 || s == 0) // базисное вычисление
             return 1;
       i++;
       result=s+sum(s-1); // функция вызывает саму себя (рекурсия)
       return result;
}
P. S.
На подобные простейшие задачи есть множество ответов в сети..
Выше приведенный код результат не значительно измененного кода из примера
I am not a wizard, I am just learning.

Последний раз редактировалось Desc; 30.11.2020 в 01:14. Причина: Исправил кодировку комментариев, и добавил P. S.
Desc вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Доказательство примитивно рекурсивных функций Medvedica8898 Помощь студентам 0 24.05.2018 20:42
Применение рекурсивных функций Jalgas-xan Паскаль, Turbo Pascal, PascalABC.NET 2 18.01.2013 16:58
ИСПОЛЬЗОВАНИЕ ФУНКЦИЙ в с++ baximaxik Помощь студентам 13 16.11.2012 14:14
Объявление прототипов функций... VintProg Visual C++ 5 19.06.2011 15:58
использование функций в качестве параметров других функций mono Помощь студентам 0 20.04.2009 18:25