Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Дана строка из 6-ти цифр.

ds waegr Гуру (3623), закрыт 4 года назад
Условие:

Дана строка из 6-ти цифр. Проверьте, что сумма первых трех цифр равняется сумме вторых трех цифр. Если это так - выведите 'да', в противном случае выведите 'нет'.

Решение:
var str = prompt();
if ((+str[0] + +str[1] + +str[2]) == (+str[3] + +str[4] + +str[5])) {
alert('da');
} else {
alert('net');
}

как можно записать по другому?
Лучший ответ
Андрей Высший разум (425994) 4 года назад
alert(str.split('').reduce((p, c, i) => p + (i < 3 ? +c : -c), 0) ? 'нет' : 'да');

Если первые 3 - прибавляем, если последние 3 - вычитаем. И сравниваем результат с 0.
Остальные ответы
Elepsis Eclipse Гений (64087) 4 года назад
if ((- str[0] - str[1] - str[2]) == ( - str[3] - str[4] - str[5]))

Например)) Если нужно явное преобразование в число, чтобы суммировать их, то 'минус' автоматически преобразует строку в число (как и умножение и деление)
Petr Muhurov Мыслитель (5922) 4 года назад
((a, b, c, d, e, f) => +a + +c + +e === +b + +d + +f ? "да" : "нет")(...str)
Rely Beltrax Знаток (278) 4 года назад
var a='135711';
if (Number(a[0])+Number(a[1])+Number(a[2]) == Number(a[3])+Number(a[4])+Number(a[5]))
alert ('true');
else
alert ('false');
Похожие вопросы