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

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

Войти
Регистрация
Восстановить пароль
 
mihal
0 / 0 / 0
Регистрация: 03.10.2012
Сообщений: 25
#1

Рекурсия: подсчет количества цифр натурального числа - C++

12.10.2012, 22:19. Просмотров 484. Ответов 7
Метки нет (Все метки)

Написать рекурсивную функцию вычисления количества цифр натурального числа.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.10.2012, 22:19     Рекурсия: подсчет количества цифр натурального числа
Посмотрите здесь:

C++ Подсчет количества цифр в текстовом файле
C++ Рекурсивная функция для вычисления количества цифр натурального числа
Рекурсия: подсчет количества четных цифр числа (на С) C++
C++ Подсчет количества цифр в строке
C++ Рекурсивный подсчет количества нечетных цифр в числе
Вывести все числа от 1 до заданного натурального числа n (рекурсия) C++
Написать рекурсивную функцию вычисления количества цифр натурального числа(исправить код) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт С++
4952 / 3028 / 149
Регистрация: 11.11.2009
Сообщений: 7,026
Завершенные тесты: 1
12.10.2012, 22:44     Рекурсия: подсчет количества цифр натурального числа #2
C++
1
2
3
4
int digits_count(int number)
{
    return number <= 0 ? 0 : 1 + digits_count(number / 10);
}
Учитывая, что ноль не считаем натуральным числом.
go
Эксперт C++
3585 / 1365 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
12.10.2012, 22:58     Рекурсия: подсчет количества цифр натурального числа #3
Цитата Сообщение от silent_1991 Посмотреть сообщение
return number <= 0 ? 0 : 1 + digits_count(number / 10);
C
1
return !number ? 0 : 1 + digits_count(number / 10);
C
1
int number
Меньше нуля быть не может
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
12.10.2012, 23:01     Рекурсия: подсчет количества цифр натурального числа #4
Ваша программа входит в бесконечный цикл при передаче ноля (хоть и правильно считает цифры для ненулевых).

Хотя, по идее не должна. Но у меня чего-то падает.
silent_1991
Эксперт С++
4952 / 3028 / 149
Регистрация: 11.11.2009
Сообщений: 7,026
Завершенные тесты: 1
12.10.2012, 23:01     Рекурсия: подсчет количества цифр натурального числа #5
go, меньше нуля может быть, если в функцию передали отрицательное число. По факту 0 как результат функции указывает, что число изначально не было натуральным.
go
Эксперт C++
3585 / 1365 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
13.10.2012, 15:37     Рекурсия: подсчет количества цифр натурального числа #6
silent_1991, отрицательное число не является натуральным. http://ru.wikipedia.org/wiki/Натуральное_число
silent_1991
Эксперт С++
4952 / 3028 / 149
Регистрация: 11.11.2009
Сообщений: 7,026
Завершенные тесты: 1
13.10.2012, 15:39     Рекурсия: подсчет количества цифр натурального числа #7
go, и как ты предлагаешь организовать защиту от дурака? Я свой вариант в третий раз объясняю: если гипотетический дурка передаст в функцию отрицательное число (или нуль, который также не является натуральным) - получит в ответ 0 (ни одно число не имеет длину 0).
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.10.2012, 16:46     Рекурсия: подсчет количества цифр натурального числа
Еще ссылки по теме:

Написать рекурсивную функцию вычисления количества цифр натурального числа C++
C++ Подсчет количества цифр в тексте
C++ Написать рекурсивную функцию вычисления количества цифр натурального числа
C++ Подсчет количества цифр в вещественном числе
Найти цифровой корень натурального числа (рекурсия) C++

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

Или воспользуйтесь поиском по форуму:
Thinker
Эксперт C++
4219 / 2193 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
13.10.2012, 16:46     Рекурсия: подсчет количества цифр натурального числа #8
если число 0 учитывать, то
C++
1
2
3
4
int Count(unsigned long a)
{
   return a < 10 ? 1 : 1 + Count(a / 10);
}
Можно так для целых со знаком
C++
1
2
3
4
5
int Count(long a)
{
   return labs(a) < 10 ? 1 : 1 + Count(a / 10);
}
в общем вариантов масса)
Yandex
Объявления
13.10.2012, 16:46     Рекурсия: подсчет количества цифр натурального числа
Ответ Создать тему
Опции темы

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