Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
razervip
0 / 0 / 2
Регистрация: 04.12.2013
Сообщений: 59
#1

Написать рекурсивную функцию вычисления количества цифр натурального числа - C++

10.03.2014, 18:24. Просмотров 540. Ответов 8
Метки нет (Все метки)

Как написать рекурсивную функцию вычисления количества цифр натурального числа?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.03.2014, 18:24
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Написать рекурсивную функцию вычисления количества цифр натурального числа (C++):

Написать рекурсивную функцию вычисления количества цифр натурального числа
Написать рекурсивную функцию вычисления количества цифр натурального числа....

Написать рекурсивную функцию вычисления количества цифр натурального числа(исправить код)
Написать рекурсивную функцию вычисления количества цифр натурального числа. ...

Написать рекурсивную функцию вычисления суммы цифр натурального числа
Вот задача: Написать рекурсивную функцию вычисления суммы цифр натурального...

Написать рекурсивную функцию вычисления суммы цифр натурального числа
Нужно написать рекурсивную функцию вычисления суммы цифр натурального числа. Я...

Написать рекурсивную функцию вычисления суммы цифр натурального числа
Помоги написать код, пожалуйста. Написать рекурсивную функцию вычисления суммы...

Написать рекурсивную функцию для вычисления суммы цифр натурального числа, введенного пользователем
Нужно написать рекурсивную функцию для вычисления суммы цифр натурального...

8
ValeryS
Модератор
7134 / 5402 / 669
Регистрация: 14.02.2011
Сообщений: 18,227
10.03.2014, 18:27 #2
например так
C++
1
2
3
4
5
6
7
int fnc( int n)
{
 if(n==0)
   return 0;
 
return 1+fnc(n/10);
}
можно еще кучу чего придумать например использовать static переменные
2
Catstail
Модератор
23540 / 11650 / 2036
Регистрация: 12.02.2012
Сообщений: 18,992
10.03.2014, 18:28 #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream.h>
 
int NumDig(int n)
{
    if (n <= 9)
        return 1;
    else
        return 1+NumDig(n / 10);
}
 
int main(int argc, char* argv[])
{
    cout << NumDig(4567) << endl;
    return 0;
}
2
metaluga145
243 / 244 / 38
Регистрация: 08.04.2013
Сообщений: 927
10.03.2014, 18:30 #4
razervip,
C++
1
2
3
4
5
6
unsigned int num (unsigned int a)
{
    if (!a)
        return 0;
    return 1 + num(a/10);
}
1
ValeryS
Модератор
7134 / 5402 / 669
Регистрация: 14.02.2011
Сообщений: 18,227
10.03.2014, 18:40 #5
Catstail,
есть один пассаж
Цитата Сообщение от Catstail Посмотреть сообщение
if (n <= 9)
если будет 0 то вернем 1
Цитата Сообщение от razervip Посмотреть сообщение
вычисления количества цифр натурального числа
пассаж заключается в том что 0 кто то считает натуральным кто то нет
так что мы оба правы
Цитата Сообщение от ValeryS Посмотреть сообщение
if(n==0)
return 0;
Цитата Сообщение от Catstail Посмотреть сообщение
if (n <= 9)
return 1;
и не правы
0
Catstail
Модератор
23540 / 11650 / 2036
Регистрация: 12.02.2012
Сообщений: 18,992
10.03.2014, 18:46 #6
Оставим рассуждения на тему "0 - число натуральное, или нет" пуристам и юристам.

Добавлено через 3 минуты
Вот немного другой код:

C++
1
2
3
4
5
6
7
int numdig(int n, int p=10, int c=1)
{
    if (n < p) 
        return c;
    else
        return numdig(n,p*10,c+1);
}
1
ValeryS
Модератор
7134 / 5402 / 669
Регистрация: 14.02.2011
Сообщений: 18,227
10.03.2014, 18:51 #7
Catstail,
то бишь ты сразу на все системы счисления написал, чтоб не мучили
1
Catstail
Модератор
23540 / 11650 / 2036
Регистрация: 12.02.2012
Сообщений: 18,992
10.03.2014, 18:54 #8
Не совсем... Там в коде умножение на 10. Нужен еще один параметр.
0
ValeryS
Модератор
7134 / 5402 / 669
Регистрация: 14.02.2011
Сообщений: 18,227
10.03.2014, 18:58 #9
Цитата Сообщение от Catstail Посмотреть сообщение
Не совсем... Там в коде умножение на 10.
да я уже потом заметил
ну тогда вот так
C++
1
2
3
4
5
6
7
int numdig(int n, int p=10, int k=10,int c=1)
{
    if (n < p) 
        return c;
    else
        return numdig(n,p*k,k,c+1);
}
1
10.03.2014, 18:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.03.2014, 18:58
Привет! Вот еще темы с решениями:

Написать рекурсивную функцию для нахождения произведения цифр натурального числа
.Написать рекурсивную функцию для нахождения произведения цифр натурального...

Найти m! + (m+n)!, создав рекурсивную функцию для вычисления факториала произвольного натурального числа. C++
Вот программа с рекурсией напишите без рекурсии пожалуйста #include #include...

Рекурсивная функция для вычисления количества цифр натурального числа
Нужно написать рекурсивную функцию для вычисления количества цифр натурального...

Разработать рекурсивную функцию для вывода на экран цифр натурального числа в прямом порядке
Помогите разобраться Задача такая: разработать рекурсивную функцию для...


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

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

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