ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила
вернуться в форум

Обсуждение задачи 1009. K-ичные числа

WHY ACCESS_VIOLATION???
Послано purplefish 30 май 2002 17:30
#include <iostream>

using namespace std;

void addNumber (int, int, int*);
bool searchNumber (int, int*);

void main(){
    int digit = 0, base = 2;
    int i = 0, j = 0, min = 1, max = 1, answer = 0;
    int number[16] = {0};

    cin >> digit >> base;

    number[digit-1] = 1;

    for (i = 1; i <= digit; i++){
        max *= base;
    }

    min = (max/base);

    for (j = min; j <= max; j++){

        addNumber(0, base, number);

        if (searchNumber(digit, number)){
            answer++;
        };

    }

    cout << answer;

}

void addNumber (int i, int base, int* number){

    if ((number[i] + 1) < base){
        number[i]++;
    } else {
        number[i] = 0;
        i++;
        addNumber(i, base, number);
    }

};

bool searchNumber (int digit, int* number){

    for (int i = 0; i < (digit-1); i++){
        if (number[i] == 0){
            if (number[i+1] == 0){
                return false;
            }
        }
    }

    return true;

}
Thanks. I figured that one out. -nt-
Послано purplefish 30 май 2002 23:00