UNPKG

hexlet-project-lvl1-german

Version:
47 lines (37 loc) 4.38 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _util = require('../util'); var _util2 = _interopRequireDefault(_util); var _ = require('..'); var _2 = _interopRequireDefault(_); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var minNumber = 100; var maxNumber = 1000; var description = 'Balance the given number.'; var getBalancedNumber = function getBalancedNumber(number) { var digits = number.toString().split('').map(Number); var sum = digits.reduce(function (acc, digit) { return digit + acc; }, 0); var digitsCount = digits.length; var big = Math.ceil(sum / digitsCount); var bigCount = sum - digitsCount * (big - 1); var newDigits = []; for (var i = 0; i < digitsCount; i += 1) { newDigits.unshift(i < bigCount ? big : big - 1); } return newDigits.reduce(function (el, acc) { return '' + el + acc; }, ''); }; var generateAnswerAndQuestion = function generateAnswerAndQuestion() { var question = (0, _util2.default)(minNumber, maxNumber); var answer = getBalancedNumber(question); return { question: question, answer: answer }; }; exports.default = function () { return (0, _2.default)(description, generateAnswerAndQuestion); }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nYW1lcy9iYWxhbmNlLmpzIl0sIm5hbWVzIjpbIm1pbk51bWJlciIsIm1heE51bWJlciIsImRlc2NyaXB0aW9uIiwiZ2V0QmFsYW5jZWROdW1iZXIiLCJudW1iZXIiLCJkaWdpdHMiLCJ0b1N0cmluZyIsInNwbGl0IiwibWFwIiwiTnVtYmVyIiwic3VtIiwicmVkdWNlIiwiYWNjIiwiZGlnaXQiLCJkaWdpdHNDb3VudCIsImxlbmd0aCIsImJpZyIsIk1hdGgiLCJjZWlsIiwiYmlnQ291bnQiLCJuZXdEaWdpdHMiLCJpIiwidW5zaGlmdCIsImVsIiwiZ2VuZXJhdGVBbnN3ZXJBbmRRdWVzdGlvbiIsInF1ZXN0aW9uIiwiYW5zd2VyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7OztBQUNBOzs7Ozs7QUFFQSxJQUFNQSxZQUFZLEdBQWxCO0FBQ0EsSUFBTUMsWUFBWSxJQUFsQjtBQUNBLElBQU1DLGNBQWMsMkJBQXBCOztBQUVBLElBQU1DLG9CQUFvQixTQUFwQkEsaUJBQW9CLENBQUNDLE1BQUQsRUFBWTtBQUNwQyxNQUFNQyxTQUFTRCxPQUFPRSxRQUFQLEdBQWtCQyxLQUFsQixDQUF3QixFQUF4QixFQUE0QkMsR0FBNUIsQ0FBZ0NDLE1BQWhDLENBQWY7QUFDQSxNQUFNQyxNQUFNTCxPQUFPTSxNQUFQLENBQWMsVUFBQ0MsR0FBRCxFQUFNQyxLQUFOO0FBQUEsV0FBZ0JBLFFBQVFELEdBQXhCO0FBQUEsR0FBZCxFQUEyQyxDQUEzQyxDQUFaO0FBQ0EsTUFBTUUsY0FBY1QsT0FBT1UsTUFBM0I7QUFDQSxNQUFNQyxNQUFNQyxLQUFLQyxJQUFMLENBQVVSLE1BQU1JLFdBQWhCLENBQVo7QUFDQSxNQUFNSyxXQUFXVCxNQUFNSSxlQUFlRSxNQUFNLENBQXJCLENBQXZCO0FBQ0EsTUFBTUksWUFBWSxFQUFsQjtBQUNBLE9BQUssSUFBSUMsSUFBSSxDQUFiLEVBQWdCQSxJQUFJUCxXQUFwQixFQUFpQ08sS0FBSyxDQUF0QyxFQUF5QztBQUN2Q0QsY0FBVUUsT0FBVixDQUFrQkQsSUFBSUYsUUFBSixHQUFlSCxHQUFmLEdBQXFCQSxNQUFNLENBQTdDO0FBQ0Q7QUFDRCxTQUFPSSxVQUFVVCxNQUFWLENBQWlCLFVBQUNZLEVBQUQsRUFBS1gsR0FBTDtBQUFBLGdCQUFnQlcsRUFBaEIsR0FBcUJYLEdBQXJCO0FBQUEsR0FBakIsRUFBNkMsRUFBN0MsQ0FBUDtBQUNELENBWEQ7O0FBYUEsSUFBTVksNEJBQTRCLFNBQTVCQSx5QkFBNEIsR0FBTTtBQUN0QyxNQUFNQyxXQUFXLG9CQUFhekIsU0FBYixFQUF3QkMsU0FBeEIsQ0FBakI7QUFDQSxNQUFNeUIsU0FBU3ZCLGtCQUFrQnNCLFFBQWxCLENBQWY7QUFDQSxTQUFPLEVBQUVBLGtCQUFGLEVBQVlDLGNBQVosRUFBUDtBQUNELENBSkQ7O2tCQU1lO0FBQUEsU0FBTSxnQkFBWXhCLFdBQVosRUFBeUJzQix5QkFBekIsQ0FBTjtBQUFBLEMiLCJmaWxlIjoiYmFsYW5jZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBnZXRSYW5kb21JbnQgZnJvbSAnLi4vdXRpbCc7XG5pbXBvcnQgZ2FtZVByb2Nlc3MgZnJvbSAnLi4nO1xuXG5jb25zdCBtaW5OdW1iZXIgPSAxMDA7XG5jb25zdCBtYXhOdW1iZXIgPSAxMDAwO1xuY29uc3QgZGVzY3JpcHRpb24gPSAnQmFsYW5jZSB0aGUgZ2l2ZW4gbnVtYmVyLic7XG5cbmNvbnN0IGdldEJhbGFuY2VkTnVtYmVyID0gKG51bWJlcikgPT4ge1xuICBjb25zdCBkaWdpdHMgPSBudW1iZXIudG9TdHJpbmcoKS5zcGxpdCgnJykubWFwKE51bWJlcik7XG4gIGNvbnN0IHN1bSA9IGRpZ2l0cy5yZWR1Y2UoKGFjYywgZGlnaXQpID0+IGRpZ2l0ICsgYWNjLCAwKTtcbiAgY29uc3QgZGlnaXRzQ291bnQgPSBkaWdpdHMubGVuZ3RoO1xuICBjb25zdCBiaWcgPSBNYXRoLmNlaWwoc3VtIC8gZGlnaXRzQ291bnQpO1xuICBjb25zdCBiaWdDb3VudCA9IHN1bSAtIGRpZ2l0c0NvdW50ICogKGJpZyAtIDEpO1xuICBjb25zdCBuZXdEaWdpdHMgPSBbXTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBkaWdpdHNDb3VudDsgaSArPSAxKSB7XG4gICAgbmV3RGlnaXRzLnVuc2hpZnQoaSA8IGJpZ0NvdW50ID8gYmlnIDogYmlnIC0gMSk7XG4gIH1cbiAgcmV0dXJuIG5ld0RpZ2l0cy5yZWR1Y2UoKGVsLCBhY2MpID0+IGAke2VsfSR7YWNjfWAsICcnKTtcbn07XG5cbmNvbnN0IGdlbmVyYXRlQW5zd2VyQW5kUXVlc3Rpb24gPSAoKSA9PiB7XG4gIGNvbnN0IHF1ZXN0aW9uID0gZ2V0UmFuZG9tSW50KG1pbk51bWJlciwgbWF4TnVtYmVyKTtcbiAgY29uc3QgYW5zd2VyID0gZ2V0QmFsYW5jZWROdW1iZXIocXVlc3Rpb24pO1xuICByZXR1cm4geyBxdWVzdGlvbiwgYW5zd2VyIH07XG59O1xuXG5leHBvcnQgZGVmYXVsdCAoKSA9PiBnYW1lUHJvY2VzcyhkZXNjcmlwdGlvbiwgZ2VuZXJhdGVBbnN3ZXJBbmRRdWVzdGlvbik7XG4iXX0=