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

рекурсивный перебор системы счисления - C++

Восстановить пароль Регистрация
 
Tolyas
0 / 0 / 0
Регистрация: 18.10.2011
Сообщений: 16
24.03.2013, 11:19     рекурсивный перебор системы счисления #1
Задача: вводятся два числа от 1 до 6 (n и m)
n - количество цифр
m - порядок системы счисления
нужно вывести все варианты в столбец.
например

Input
2 3
Output
1 1
1 2
1 3
2 1
2 2
2 3
3 1
3 2
3 3


Input
3 3
Output
1 1 1
1 1 2
1 1 3
1 2 1
1 2 2
1 2 3
1 3 1
1 3 2
1 3 3
2 1 1
2 1 2
2 1 3
2 2 1
2 2 2
2 2 3
2 3 1
2 3 2
2 3 3
3 1 1
3 1 2
3 1 3
3 2 1
3 2 2
3 2 3
3 3 1
3 3 2
3 3 3

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
30
31
32
33
34
35
36
37
38
39
40
#include <iostream>
#include <cmath>
#include <stack>
#include <string>
 
using namespace std;
 
short n,m;
 
void f (long i, long max)
{
    stack <short> a;
    if (i<max)
    {   
        long r=i;
        //cout<<max<<"="<<i+1<<":";
        for(short j=0;j<n;j++)
        {
            a.push(r%m+1);
            r/=m;
        }
        for (short j=n-1;j>=0;j--)
        {
            cout<<a.top()<<" ";
            a.pop();
        }
        cout<<endl;
        f(i+1,max);
    }
}
 
int main()
{
    cin>>n>>m;
    long t=0;
    long max=0;
    max=pow((double)m,n);
    f(t,max);
    return 0;
}
где-то на 3200 - 3600 переборе выскакивает Run-Time Error. Подскажите в чем может быть ошибка.
Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.03.2013, 11:19     рекурсивный перебор системы счисления
Посмотрите здесь:

C++ Простейший алгоритм перевода числа из 10 системы счисления в 16 ричную систему счисления
C++ Перевод натурального числа из десятичной системы счисления в систему счисления по основанию
C++ Перевод чисел из двоичной системы счисления в систему счисления кратной степеням двойки и обратно
C++ Написать рекурсивный алгоритм перевода из двоичной системы счисления в десятичную ( из восьмеричной и шестнадцатеричной в десятичную)
Задача на рекурсивный перебор C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт C++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
25.03.2013, 10:54     рекурсивный перебор системы счисления #2
Цитата Сообщение от Tolyas Посмотреть сообщение
где-то на 3200 - 3600 переборе выскакивает Run-Time Error
Вероятно рекурсия переполняет стек программы. А вообще (3200 - 3600) это для какой переменной значения?
Yandex
Объявления
25.03.2013, 10:54     рекурсивный перебор системы счисления
Ответ Создать тему
Опции темы

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