Создание тестов для задачи "Одной цифрой"
Ограничения: время – 1s/2s, память – 32MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение Blockly Посылки Темы Где Обсудить (2)
Напишите тесты для следующей задачи:
Найти наименьшее целое число `Y`, большее или равное заданному числу `X`, запись которого в некоторой системе счисления по основанию `B\ (2\ ≤\ B\ ≤\ 36)` состоит из одинаковых цифр. Например, для числа 1234 таким числом будет 1256, которое в 12-ричной системе можно записать, используя только одну цифру 8: `888_12`.
В первой строке входного файла содержится целое `X\ (1\ ≤\ X\ ≤\ 10^9)` в десятичной системе счисления.
В выходной файл вывести основание системы счисления `B` и через пробел запись искомого числа `Y` в этой системе счисления. Если существует несколько вариантов искомого `Y` в системах счисления с различными основаниями, то вывести результат, используя наименьшее из оснований. Для цифр от 10 до 35 использовать прописные латинские буквы A..Z соответственно.
Тесты задаются в форме:
*INPUT
Ввод для теста 1
*OUTPUT
Вывод для теста 1
*INPUT
Ввод для теста 2
*OUTPUT
Вывод для теста 2
...
Ввод для тестов должен соответствовать условиям задачи. Решение считается принятым, если тесты обнаруживают ошибки во всех программах из некоторого набора. Количество тестов не должно превышать 20. Тесты после 20-го игнорируются. Ошибка PE при проверке означает, что выведенные тесты содержат ошибки, т.е. не соответствуют условиям задачи или ввод выводу.
Подсказка: Определите сначала для каждой системы счисления какие десятичные числа в ней можно записать с помощью одинаковых цифр. Всего таких чисел несколько десятков.
Пример вывода
*INPUT
1234
*OUTPUT
12 888
*INPUT
2
*OUTPUT
3 2
Вы можете переслать также программу, которая выводит файл с тестами.
Пример программы
#include <iostream>
#include <string>
void test(int n, int a, string r)
{ std::cout<<"*INPUT\n"<<a<<"\n*OUTPUT\n"<<r<<"\n";
}
int main()
{ test(1,1234,"12 888");
test(2,2,"3 2");
}