Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как с помощю рекурсии решить задачу? / 7 сообщений из 7, страница 1 из 1
25.06.2014, 11:39
    #38679472
MMM1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как с помощю рекурсии решить задачу?
Скажите пожалуйста как можно вывести список всех n значных чисел цифры которых стоят в порядке возрастания.

Например для двухзначных можно было так:
Код: vbnet
1.
2.
3.
4.
5.
6.
        
For i = 1 To 9
For j = i To 9
WriteLine(i & j)
Next
Next



А если мы задаем программно количество чисел то я думаю так не получается. Скажите пожалуйста как быт?
...
Рейтинг: 0 / 0
25.06.2014, 12:53
    #38679612
ЕвгенийВ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как с помощю рекурсии решить задачу?
MMM1,
Как то так :)
Код: 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.
 Action<int, int> act1 = (a, b) =>
            {
                int i = 1;
                Action<int> act2 = null;
                act2 = (a1) =>
                 {
                     if (i <= b)
                     {
                         Console.Write("\t" + a1 + i);
                         i++;
                         act2(a1);                         
                     }
                 };
                Action<int> act3 = null;
                act3 = a3 =>
                {
                    if (a3 <= a)
                    {                        
                        act2(a3);
                        i = 1;
                        act3(++a3);
                    }
                };
                act3(1);
            };
            act1(9, 9);
...
Рейтинг: 0 / 0
25.06.2014, 16:16
    #38679997
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как с помощю рекурсии решить задачу?
ЕвгенийВ,
x - количество цифр
(10^x) - 1 - максимально число
(10^x-1) - минимальное число

for (var i = (10^x-1); i < (10^x); i++)
console.writeln(i.ToString())

не?
...
Рейтинг: 0 / 0
25.06.2014, 16:19
    #38680006
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как с помощю рекурсии решить задачу?
последнее условие не учёл, сори.
...
Рейтинг: 0 / 0
25.06.2014, 16:37
    #38680041
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как с помощю рекурсии решить задачу?
Roman Mejtes,

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
        static void Main(string[] args)
        {
            const int digitCount = 4;
            for (var i = 1; i < 10; i++)
                GetNumber(digitCount, 1, i);
            Console.ReadLine();
        }

        public static void GetNumber(int deep, int current, int value)
        {
            var min = value % 10 + 1;
            if (deep > current)
                for (var i = min; i < 10; i++)
                {
                    var newvalue = value * 10 + i;
                    if (deep == current + 1) Console.Write(newvalue.ToString() + ",");
                    GetNumber(deep, current + 1, newvalue);
                }
        }


вот еще вариант :)
...
Рейтинг: 0 / 0
25.06.2014, 16:49
    #38680067
refreg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как с помощю рекурсии решить задачу?
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
        public static void NumberString(int n, string prefix = "")
        {
            if (n == 1) {
                for (int i = 0; i <= 9; i++)
                    Console.WriteLine("{0}{1}", prefix, i);
            }
            else {
                for (int i = 0; i <= 9; i++) {
                    NumberString(n - 1, prefix + i.ToString());
                }
            }
        }
...
Рейтинг: 0 / 0
25.06.2014, 18:42
    #38680239
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как с помощю рекурсии решить задачу?
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как с помощю рекурсии решить задачу? / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]