UNPKG

hexlet-project-lvl1-german

Version:
47 lines (37 loc) 4.39 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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nYW1lcy9iYWxhbmNlLWdhbWUuanMiXSwibmFtZXMiOlsibWluTnVtYmVyIiwibWF4TnVtYmVyIiwiZGVzY3JpcHRpb24iLCJnZXRCYWxhbmNlZE51bWJlciIsIm51bWJlciIsImRpZ2l0cyIsInRvU3RyaW5nIiwic3BsaXQiLCJtYXAiLCJOdW1iZXIiLCJzdW0iLCJyZWR1Y2UiLCJhY2MiLCJkaWdpdCIsImRpZ2l0c0NvdW50IiwibGVuZ3RoIiwiYmlnIiwiTWF0aCIsImNlaWwiLCJiaWdDb3VudCIsIm5ld0RpZ2l0cyIsImkiLCJ1bnNoaWZ0IiwiZWwiLCJnZW5lcmF0ZUFuc3dlckFuZFF1ZXN0aW9uIiwicXVlc3Rpb24iLCJhbnN3ZXIiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOzs7O0FBQ0E7Ozs7OztBQUVBLElBQU1BLFlBQVksR0FBbEI7QUFDQSxJQUFNQyxZQUFZLElBQWxCO0FBQ0EsSUFBTUMsY0FBYywyQkFBcEI7O0FBRUEsSUFBTUMsb0JBQW9CLFNBQXBCQSxpQkFBb0IsQ0FBQ0MsTUFBRCxFQUFZO0FBQ3BDLE1BQU1DLFNBQVNELE9BQU9FLFFBQVAsR0FBa0JDLEtBQWxCLENBQXdCLEVBQXhCLEVBQTRCQyxHQUE1QixDQUFnQ0MsTUFBaEMsQ0FBZjtBQUNBLE1BQU1DLE1BQU1MLE9BQU9NLE1BQVAsQ0FBYyxVQUFDQyxHQUFELEVBQU1DLEtBQU47QUFBQSxXQUFnQkEsUUFBUUQsR0FBeEI7QUFBQSxHQUFkLEVBQTJDLENBQTNDLENBQVo7QUFDQSxNQUFNRSxjQUFjVCxPQUFPVSxNQUEzQjtBQUNBLE1BQU1DLE1BQU1DLEtBQUtDLElBQUwsQ0FBVVIsTUFBTUksV0FBaEIsQ0FBWjtBQUNBLE1BQU1LLFdBQVdULE1BQU1JLGVBQWVFLE1BQU0sQ0FBckIsQ0FBdkI7QUFDQSxNQUFNSSxZQUFZLEVBQWxCO0FBQ0EsT0FBSyxJQUFJQyxJQUFJLENBQWIsRUFBZ0JBLElBQUlQLFdBQXBCLEVBQWlDTyxLQUFLLENBQXRDLEVBQXlDO0FBQ3ZDRCxjQUFVRSxPQUFWLENBQWtCRCxJQUFJRixRQUFKLEdBQWVILEdBQWYsR0FBcUJBLE1BQU0sQ0FBN0M7QUFDRDtBQUNELFNBQU9JLFVBQVVULE1BQVYsQ0FBaUIsVUFBQ1ksRUFBRCxFQUFLWCxHQUFMO0FBQUEsZ0JBQWdCVyxFQUFoQixHQUFxQlgsR0FBckI7QUFBQSxHQUFqQixFQUE2QyxFQUE3QyxDQUFQO0FBQ0QsQ0FYRDs7QUFhQSxJQUFNWSw0QkFBNEIsU0FBNUJBLHlCQUE0QixHQUFNO0FBQ3RDLE1BQU1DLFdBQVcsb0JBQWF6QixTQUFiLEVBQXdCQyxTQUF4QixDQUFqQjtBQUNBLE1BQU15QixTQUFTdkIsa0JBQWtCc0IsUUFBbEIsQ0FBZjtBQUNBLFNBQU8sRUFBRUEsa0JBQUYsRUFBWUMsY0FBWixFQUFQO0FBQ0QsQ0FKRDs7a0JBTWU7QUFBQSxTQUFNLGdCQUFZeEIsV0FBWixFQUF5QnNCLHlCQUF6QixDQUFOO0FBQUEsQyIsImZpbGUiOiJiYWxhbmNlLWdhbWUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZ2V0UmFuZG9tSW50IGZyb20gJy4uL3V0aWwnO1xuaW1wb3J0IGdhbWVQcm9jZXNzIGZyb20gJy4uJztcblxuY29uc3QgbWluTnVtYmVyID0gMTAwO1xuY29uc3QgbWF4TnVtYmVyID0gMTAwMDtcbmNvbnN0IGRlc2NyaXB0aW9uID0gJ0JhbGFuY2UgdGhlIGdpdmVuIG51bWJlci4nO1xuXG5jb25zdCBnZXRCYWxhbmNlZE51bWJlciA9IChudW1iZXIpID0+IHtcbiAgY29uc3QgZGlnaXRzID0gbnVtYmVyLnRvU3RyaW5nKCkuc3BsaXQoJycpLm1hcChOdW1iZXIpO1xuICBjb25zdCBzdW0gPSBkaWdpdHMucmVkdWNlKChhY2MsIGRpZ2l0KSA9PiBkaWdpdCArIGFjYywgMCk7XG4gIGNvbnN0IGRpZ2l0c0NvdW50ID0gZGlnaXRzLmxlbmd0aDtcbiAgY29uc3QgYmlnID0gTWF0aC5jZWlsKHN1bSAvIGRpZ2l0c0NvdW50KTtcbiAgY29uc3QgYmlnQ291bnQgPSBzdW0gLSBkaWdpdHNDb3VudCAqIChiaWcgLSAxKTtcbiAgY29uc3QgbmV3RGlnaXRzID0gW107XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgZGlnaXRzQ291bnQ7IGkgKz0gMSkge1xuICAgIG5ld0RpZ2l0cy51bnNoaWZ0KGkgPCBiaWdDb3VudCA/IGJpZyA6IGJpZyAtIDEpO1xuICB9XG4gIHJldHVybiBuZXdEaWdpdHMucmVkdWNlKChlbCwgYWNjKSA9PiBgJHtlbH0ke2FjY31gLCAnJyk7XG59O1xuXG5jb25zdCBnZW5lcmF0ZUFuc3dlckFuZFF1ZXN0aW9uID0gKCkgPT4ge1xuICBjb25zdCBxdWVzdGlvbiA9IGdldFJhbmRvbUludChtaW5OdW1iZXIsIG1heE51bWJlcik7XG4gIGNvbnN0IGFuc3dlciA9IGdldEJhbGFuY2VkTnVtYmVyKHF1ZXN0aW9uKTtcbiAgcmV0dXJuIHsgcXVlc3Rpb24sIGFuc3dlciB9O1xufTtcblxuZXhwb3J0IGRlZmF1bHQgKCkgPT4gZ2FtZVByb2Nlc3MoZGVzY3JpcHRpb24sIGdlbmVyYXRlQW5zd2VyQW5kUXVlc3Rpb24pO1xuIl19