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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
маня
1 / 1 / 0
Регистрация: 28.04.2012
Сообщений: 114
28.04.2012, 14:11     Составить рекурсивную функцию, которая находит цифровой корень целого числа #1
помогите решить задачу на С++ Составить рекурсивную функцию, которая находит цифровой корень целого числа. Цифровой корень находится суммой через сумму цифр числа до того момента, пока эта сумма сама не станет цифрой. Например, для числа 9999999 цифровой корень находится так:
9 +9 +9 +9 +9 +9 +9 = 63
6 +3 = 9.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.04.2012, 14:11     Составить рекурсивную функцию, которая находит цифровой корень целого числа
Посмотрите здесь:

C++ Описать рекурсивную функцию, которая методом деления отрезка пополам находит корень уравнения
C++ Реализовать программу, которая для заданного N (N<10100) находит его цифровой корень
Составить рекурсивную функцию, которая находит произведение n парных положительных чисел C++
C++ Разработать функцию, которая для заданного натурального числа находит корень
Разработать функцию f(n), которая для заданного натурального числа п находит значение корень 4n + n C++
Составить рекурсивную функцию, которая находит цифровой корень целого числа C++
Составить программу, которая находит n-е число Фибоначчи. Использовать в задаче рекурсивную функцию C++
Составить рекурсивную функцию, которая находит наименьший элемент массива из реальных чисел C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Fler
207 / 209 / 9
Регистрация: 20.12.2011
Сообщений: 635
28.04.2012, 14:50     Составить рекурсивную функцию, которая находит цифровой корень целого числа #2
что-то вроде этого
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
using namespace std;
int root(int a)
{
    int s = 0;
    while(a > 0)
    {
        s += a % 10;
        a /= 10;
    }
    if(s > 9) return root(s);
    else return s;
}
int main()
{
    int a;
    setlocale(LC_ALL,"Russian");
    cout << "Введите a: "; cin >> a;
    cout << "Цифровой корень: " << root(a) << endl;
    system("pause");
    return 0;
}
JokerNN
132 / 128 / 36
Регистрация: 29.12.2011
Сообщений: 359
28.04.2012, 14:57     Составить рекурсивную функцию, которая находит цифровой корень целого числа #3
А я без единой итерации сделал - чистая тёплая ламповая рекурсия везде.
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;
}
Yandex
Объявления
28.04.2012, 14:57     Составить рекурсивную функцию, которая находит цифровой корень целого числа
Ответ Создать тему
Опции темы

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