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

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

Войти
Регистрация
Восстановить пароль
 
Revolver19931
1 / 1 / 1
Регистрация: 24.09.2013
Сообщений: 139
#1

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

22.03.2014, 14:16. Просмотров 613. Ответов 1
Метки нет (Все метки)

Составить рекурсивную функцию, которая находит цифровой корень целого числа. Цифровой корень находится суммой через сумму цифр числа до того момента, пока эта сумма сама не станет цифрой. Например, для числа 9999999 цифровой корень находится так:
9 +9 +9 +9 +9 +9 +9 = 63
6 +3 = 9.

При нахождении использовать ФУНКЦИЮ.

Заранее спасибо.

У меня получился такой код:

Добавлено через 19 минут
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
//zadanie 3
#include <iostream.h>
#include <math.h>
int symma(int n, int s)
{ 
    s=0;
while (n>0)
    {
        s+=n%10;
        n=n/10;
 
    } 
return s; 
}
void main()
{ 
int n, int s;
{
    cout<<"Vvedite N:"<<endl;
    cin>>n;
    {
    cout<<"S= "<<symma(n,s)<<endl;
    }
}
}
Теперь возвращает значение 63, а мне нужно значение 6+3, помогите разобраться.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.03.2014, 14:16
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Составить рекурсивную функцию, которая находит цифровой корень целого числа (C++):

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

Описать рекурсивную функцию, которая методом деления отрезка пополам находит корень уравнения - C++
Описать рекурсивную функцию Root (a, b, 8), которая методом деления отрезка пополам находит с точностью е корень уравнения f(x) = 0 на...

Составить рекурсивную функцию, которая находит произведение n парных положительных чисел - C++
Помогите пожалуйста с задачей! Составить рекурсивную функцию, которая находит произведение n парных положительных чисел.

Составить рекурсивную функцию, которая находит наименьший элемент массива из реальных чисел - C++
double min(double* arr, int n); Примеры double arr = {4.1, 2.0, 5.3, 7.2}; min(arr, 4); // -&gt; 2.0 Заранее благодарю

Составить программу, которая находит n-е число Фибоначчи. Использовать в задаче рекурсивную функцию - C++

Разработать функцию, которая для заданного натурального числа находит корень - C++
Разработать функцию f(n), которая для заданного натурального числа n находит значение корень n + n

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
dimcoder
Полярный
462 / 434 / 68
Регистрация: 11.09.2011
Сообщений: 1,134
22.03.2014, 14:31 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
#include <iostream>
#include <cmath>
 
int symma(int n, int s)
{ 
    s=0;
    while (n>0)    //получаем 63
    {
        s+=n%10;
        n=n/10; 
    }
    
    n = 0;
    
    while (s>0)    //получаем 6+3
    {
        n+=s%10;
        s=s/10; 
    }
    
    return n; 
}
 
int main()
{
    int n, s;
    
    std::cout<<"Vvedite N:"<<std::endl;
    std::cin>>n;
    
    std::cout<<"S= "<<symma(n,s)<<std::endl;
    
    system("PAUSE > NULL");
}
Добавлено через 8 минут
А вот таки рекурсия:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
 
int rec(int n)
{ 
    if ( (n/10) <= 0 )
        return n%10;
    else
        return n%10 + rec(n/10);
}
 
int main()
{   
    int n;
    
    std::cin >> n;
    
    std::cout << rec(rec(n)) << std::endl;
    
    system("PAUSE > NULL");
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.03.2014, 14:31
Привет! Вот еще темы с ответами:

Разработать функцию f(n), которая для заданного натурального числа п находит значение корень 4n + n - C++
Разработать функцию f(n), которая для заданного натурального числа п находит значение корень 4n + n. Вычислить с помощью нее значение...

Реализовать программу, которая для заданного N (N<10100) находит его цифровой корень - C++
Реализовать программу, которая для заданного N (N&lt;10100) находит его цифровой корень.

Составить и использовать функцию, которая определяет количество цифр одного целого числа - C++
В массиве целых чисел найти количество чисел с наименьшим ко-личеством цифр. Например, в массиве {123, 34, 56, 1000, 20, 55000, 777, 11}...

Разработать функцию, которая находит корень - C++
Разработать функцию f(n), которая для заданного натурального числа п находит значение корень n+n. Вычислить с помощью нее значение...


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

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

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