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

Кратность девяти. Рекурсия. - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
diffmike
7 / 7 / 0
Регистрация: 19.03.2010
Сообщений: 12
25.12.2010, 21:33     Кратность девяти. Рекурсия. #1
Нужно проверить делится ли натуральное число на 9, с помощью признака делимости (сумма цифр делится на 9) и рекурсии. Как без рекурсии, так без проблем, а вот как сделать через рекурсию как-то плохо себе представляю...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.12.2010, 21:33     Кратность девяти. Рекурсия.
Посмотрите здесь:

C++ Массив+кратность. найти ошибку.
Написать функцию которая проверяет кратность двух чисел C++
Кратность C++
C++ Кратность целой части числа
Кратность чисел пользователь может указать y - x C++
C++ Корни квадратного уравнения, кратность случайного числа, процент от числа
Вывести массив B из девяти элементов, определить количество элементов C++
Вывести сообщение, кратно ли заданое число девяти C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
25.12.2010, 21:59     Кратность девяти. Рекурсия. #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
#include <iostream>
 
int foo(int numb, int sum)
{
     if(!numb)
       return sum;
     int k=numb%10;
     return foo(numb/10, sum+k);
}
 
bool isDiv(int numb, int div)
{
    return foo(numb, 0) % div == 0;  
}
 
int main()
{
    const int div=9;
    int n;
    std::cout<<"Enter n: ";
    std::cin>>n;
    if(isDiv(n, div))
       std::cout<<"Yes\n";
    else
       std::cout<<"No\n";
    return 0;
}
Байт
 Аватар для Байт
13970 / 8801 / 1226
Регистрация: 24.12.2010
Сообщений: 15,944
25.12.2010, 23:32     Кратность девяти. Рекурсия. #3
Цитата Сообщение от diffmike Посмотреть сообщение
Нужно проверить делится ли натуральное число на 9, с помощью признака делимости (сумма цифр делится на 9) и рекурсии. Как без рекурсии, так без проблем, а вот как сделать через рекурсию как-то плохо себе представляю...
Рекурсия - великолепный механизм, но он таит в себе кучу всяких проблем. Стек. Хорошо. А сколь он велик? И как я могу им управлять? В каком месте моего рекурсивного алгоритма машинка скажет "Out of memory". Если задачка решается без рекурсии, слава великому Собачьему Богу! Но, увы, многие, и очень интересные задачи - принципиально рекурсивны (как жизнь). И вот, один из величайших программистов всех времен и народов, Дональд Кнут, рекурсивные алгоритмы РАСКРЫВАЕТ. Т.е. вводит "СТЕКИ". А рекурсии там нет!
Ну, об этом есть еще чего сказать. Но если задача допускает ПРОСТОЙ нерекурсивный алгоритм, то требовать ее реализовать в рекурсии - садизм. Наоборот, интереснее найти для рекурсивной реализации - нерекурсивную.
Мой любимый автор Д.Кнут показал, что это возможно, хотя и хлопонто.

Добавлено через 14 минут
И конечно, вычисление факториала через рекурсию - хороший педагогический прием.
Но он вызывает естественное изумление - а ЗАЧЕМ?
Yandex
Объявления
25.12.2010, 23:32     Кратность девяти. Рекурсия.
Ответ Создать тему
Опции темы

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