136 / 2 / 6
Регистрация: 04.07.2015
Сообщений: 122
1

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

29.08.2015, 19:42. Показов 1929. Ответов 4
Метки нет (Все метки)

Дано натуральное число N. Выведите все его цифры по одной, в обратном порядке,
разделяя их пробелами или новыми строками.
При решении этой задачи нельзя использовать строки, списки, массивы(ну и циклы, разумеется).
Разрешена только рекурсия и целочисленная арифметика.

Логика верная, но не понятно немного с переменными и какое значение возвращать. Надо подправить код

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
int Perevod(int);
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "rus");
    int x,temp;
    printf("Введите целое число: ");
    scanf("%d", &x);
 
    Perevod(0);
    printf("%d", temp);
    return 0;
}
 
int Perevod(int x)
{
    if (x < 10)
    {
        printf("Вы ввели число меньше 10");
        return x;
    }
    else
    {
        int temp=x % 10;
        Perevod(x / 10);
        return temp;
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.08.2015, 19:42
Ответы с готовыми решениями:

Дан массив из 10 целых чисел. Записать цифры числа в обратном порядке, используя рекурсию
Например: Массив: 123 34 12 11 87 19 86 64 283 12398 Должен превратиться в: 321 43 21 11 78 91 68...

Вывести числа в обратном порядке, при этом переставив все цифры в каждом числе в обратном порядке
Чтобы Вовочка не скучал на уроке информатики, Иван Иваныч специально для него к каждому уроку...

Вывести числа обратном порядке, при этом переставив все цифры в каждом числе в обратном порядке
Добрый день. Не могу понять алгоритм решения данной задачи, помогите пожалуйста. Заданы пять...

Вывести все цифры числа по одной, в обратном порядке
Дано натуральное число N. Выведите все его цифры по одной, в обратном порядке,...

4
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
11718 / 7223 / 1712
Регистрация: 25.07.2009
Сообщений: 13,223
29.08.2015, 20:07 2
Соседние темы принципиально не смотрим?
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
 
void reverse_print(unsigned n) {
    printf("%u ", n % 10);
    if ( n > 9 )
        reverse_print(n / 10);
}
 
int main(void) {
    unsigned n;
    
    while ( printf("\nNumber: ") && scanf("%u", &n) == 1 )
        reverse_print(n);
    
    return 0;
}
0
136 / 2 / 6
Регистрация: 04.07.2015
Сообщений: 122
29.08.2015, 20:21  [ТС] 3
Мне не понятно в моем решении, почему постоянно выводится сообщение про число меньше 10. Как можно сделать рекурсию с двумя return
0
Эксперт PHP
3102 / 2587 / 1219
Регистрация: 14.05.2014
Сообщений: 7,231
Записей в блоге: 1
29.08.2015, 20:38 4
Цитата Сообщение от Setb Посмотреть сообщение
Perevod(x / 10);
как только x/10 будет меньше 10, выведется сообщение о том, что введено значение меньше 10, элементарно.
0
136 / 2 / 6
Регистрация: 04.07.2015
Сообщений: 122
29.08.2015, 22:46  [ТС] 5
Моя программа вообще некорректно работает. Perevod(x / 10) - я не это имею ввиду. Надо, чтобы если набрано число 3 например и запущена программа, то сообщение. А если например 23, то вывод 32

Добавлено через 1 час 28 минут
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
void Perevod(int);
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "rus");
    int x;
    printf("Введите целое число: ");
    scanf("%d", &x);
 
    Perevod(x);
 
    return 0;
}
 
void Perevod(int x)
{
    printf("%d ", x%10);
 
        if (x > 9)
        Perevod(x / 10);
    
}
Добавлено через 23 секунды
Заработало
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.08.2015, 22:46
Помогаю со студенческими работами здесь

Вывести все цифры числа по одной, в обратном порядке
Задача на рекурсию. Дано натуральное число N. Выведите все его цифры по одной, в обратном...

Вывести все цифры введенного натурального числа в обратном порядке
Помогите написать программу на С++. Вводится натуральное число. Вывести все цифры числа в обратном...

Используя рекурсию напечатать вводимые числа в обратном порядке
1. Написать рекурсивную процедуру, которая считывает вводимые с клавиатуры числа до тех пор, пока...

Рекурсия: вывести все цифры заданного натурального числа в обратном порядке
дано натуральное число N. выведите все цифры по одной, в обратном порядке, разделяя их пробелами...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru