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

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

Почему не правильно?
Послано Kirill_M 20 сен 2013 12:19
#include <iostream>
#include <string>
#include <stdio.h>
#include <cmath>

using namespace std;

int n,k,col=0;

int main() {

    cin>>n>>k;
    int bo=0;
    int z,z1;
    z=pow(10.0,(n-1));
    z1=pow(10.0,n);
    for(int i=z;i<z1;++i)
    {
        for (int v = i; v; v /= 10)
        {
            if (((v%10)>=k) || (((v%10)==0) && ((v%100)==0)))  {bo=1; v=0;};
        }
        if (!bo) ++col;
        bo=0;
    }
    cout<<col;
    return 0;
}
Re: Почему не правильно?
Послано PVD 27 сен 2013 01:46
Насколько я понимаю, основание может быть отличным от 10, то есть с основанием, 2, 3, 4, 5, 6, 7, 8, 9. Из-за этого и запись разная, например число 31(осн. 10) = 11111(осн. 2) = 51(осн. 6) = 24(осн.8) = 1F(осн. 16). Вот такие пироги.