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

Составить рекурсивную функцию, которая находит цифровой корень целого числа - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Составить функцию, которая вычисляет радиус R окружности http://www.cyberforum.ru/cpp-beginners/thread560882.html
Помогите решить задачу на С++ Составить функцию, которая вычисляет радиус R окружности, описанной вокруг правильного многоугольника с известной длиной стороны a и известным числом сторон n по...
C++ Построение кривой 2-го порядка Собственно нужно построить кривую по пяти точкам Общее уравнение кривой...... http://www.cyberforum.ru/cpp-beginners/thread560863.html
Строка: посчитать частоту появления каждого символа C++
Для произвольного текста на произвольном языке с учетом регистра посчитать частоту появления каждого символа.
Из ведомости работников цеха определить, сколько в цехе мужчин-токарей? C++
Всем привет. Очень нужна ваша помощь, вот такое условие задачи "Из ведомости работников цеха определить, сколько в цехе мужчин-токарей?", все никак не допру как ее реализовать. Всем спасибо!
C++ скомпилировать из коммандной строки через MSV2010 http://www.cyberforum.ru/cpp-beginners/thread560835.html
Привет всем, никак не могу скомпилировать из под командной строки компилятором MSV2010 Ultimate, компиялтор cl.exe, вызываю в командной строке его, мне сразу выдает ошибку, посмотрел ошибку в...
C++ Поиск: Определить, сколько делителей и какие имеет данное натуральное число привет! не поможете? Определить сколько делителей и какие имеет данное натуральное число. Использовать оператор цикла с параметром; подробнее

Показать сообщение отдельно
JokerNN
132 / 128 / 36
Регистрация: 29.12.2011
Сообщений: 359
28.04.2012, 14:57
А я без единой итерации сделал - чистая тёплая ламповая рекурсия везде.
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
#include <iostream>
//digiroot
 
using namespace std;
 
int digiroot(int number)
{
    if (number == 0) return number;
    return number%10 + digiroot(number/10);
}
 
int total_digiroot(int number)
{
    int res=digiroot(number);
    if (res/10 == 0){
        return res;
    }
    return total_digiroot(res);
}
 
int main()
{
    int number;
    cout<<"Input number, please: ";
    cin>>number;
    cout<<"Root: "<<total_digiroot(number)<<endl;
    return 0;
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru