Введение
Я наткнулся на эту (бесполезную) схему на днях, когда смотрел телевизор. Я назвал его «паттерном 9», потому что первое число, которое использовало его, было 9. Суть его в том, что вы вводите число (скажем, х ), а затем вы возвращаетесь:
- Икс
- х + ( х / 3) [назовем это у ]
- две трети у [назовем это г ]
- z + 1
Итак, если бы я поместил внутри этого шаблона число 9 как х , это то, что получится:
- 9 ( 9 )
- 12 ( 9 + 9/3 ) [9 над 3 - это 3, а 9 + 3 - это 12]
- 8 ( 12 умножить на две трети) [треть из 12 - это 4, а 4 * 2 - это 8]
- 9 ( 8 + 1 - 9)
Вызов
Напишите мне функцию (на любом языке программирования), которая принимает число и выводит целочисленный массив, используя шаблон.
Примерно как этот псевдо-код:
function ninePattern(int myInt) returns IntegerArray {
int iterationA = myInt + (myInt / 3);
int iterationB = iterationA * (2 / 3);
int iterationC = iterationB + 1;
IntegerArray x = [myInt, iterationA, iterationB, iterationC];
return x;
}
Разъяснения
Обсуждения были вызваны в комментариях относительно спецификаций вопроса. Этот раздел предназначен для пояснения некоторых из них.
"лучше считать в байтах, чем в символах"
Я выбрал персонажей, потому что (по крайней мере для меня) было бы легче судить. Конечно, я не могу изменить это сейчас. (множество ответов уже опубликовано)
«Округление»
Округление следует за этой рифмой:
Если это 5 или больше, поднять счет
Если это 4 или меньше, пусть отдыхает
Проще говоря, если это что-то вроде 4,7 или 3,85, округлите их до 5 и 4 соответственно.
Примеры
Input => Result
9 => [9, 12, 8, 9]
8 => [8, 11, 7, 8]
6 => [6, 8, 5, 6]
23 => [23, 31, 21, 22]
159 => [159, 212, 141, 142]
Однако, если числа примерно такие же, как 2.3 или 10.435446, округлите их до 2 и 10 соответственно.
"языковая поддержка"
Вы можете не использовать функции и / или массивы, ЕСЛИ И ТОЛЬКО ЕСЛИ выбранный вами язык не поддерживает их. Если это так (даже если это увеличит количество ваших персонажей), вы должны их использовать .