Loading...
DobrinMarkov avatar DobrinMarkov 2 Точки

JS PB Nested loops

Еднакви суми на леви и десни позиции
Напишете програма, която чете от конзолата две петцифрени цели числа в диапазона от 10000 до 99999.
Първото число винаги ще бъде по-малко от второто. Да се намерят и отпечатат на конзолата, разделени с
интервал, онези числа, които се намират между прочетените от конзолата числа и отговарят на следните
условия:
 сумите от двете най-десни и двете най-леви цифри на проверяваното число да са равни
 ако сумите са различни към по-малката от тях се прибавя средната цифра, на проверяваното число и
получената нова сума се сравнява с другата сума. Ако те са равни числото се отпечатва.
Ако няма числа, отговарящи на условията на конзолата не се извежда резултат.
Примерен вход и изход
Вход
10000
10100

Изход

10001 10010 10100

Обяснения

Първото генерирано число за проверка е 10000. Разделяме числото на 3
групи - двете най- десни цифри, двете най- леви и средната. Сумата на двете
най- десни цифри е 0+0=0, а тази на двете най- -леви 0+1=1. Тъй като сумата
на десните цифри е по-малка от сумата на левите към нея прибавяме
средната цифра 0+0=0. Получаваме 0. Сравняваме новополучената сума със
сумата на левите цифри. Те не са равни, числото не отговаря на условието и
не се отпечатва.
Следващото число за проверка е 10001. Сумата на десните цифри е 1+0=1, а
на левите 0+1=1. Двете суми са равни и не е нужно да извършваме някакви
действия със средната цифра. Числото се отпечатва на конзолата.
Следващото число е 10002. Не отговаря на условията и не се отпечатва.
Последното число за проверка е 10100. Сумата на десните цифри е 0+0=0, на
левите 0+1=1. Дясната сума е по-малка и затова към нея прибавяме средната
цифра 0+1=1. Новополучената сума сравняваме със сумата на левите цифри.
Двете суми са равни, числото отговаря на условията и се отпечатва.

Това е условието на задачата, а това е моето решение - https://pastebin.com/PY8FJB0X, за което получавам 40/100.

Съдейки по резултата ми проблемът е с тази част на условието " ако сумите са различни към по-малката от тях се прибавя средната цифра, на проверяваното число и получената нова сума се сравнява с другата сума. Ако те са равни числото се отпечатва." 

Някой да вижда какъв е проблема?

Тагове:
0
Programming Basics
willystyle avatar willystyle 2472 Точки

Замени

let newNumb = numb.charCodeAt(j);

с

let newNumb = +numb[j];

PS Добре е да провериш какво дава функцията charCodeAt, връща UTF кода на символа на съответната позиция, а на теб ти трябва символа на съответната позиция, който да парснеш.

Други варианти на решение:

let newNumb = +numb.chatAt(j);

let newNumb = Number(numb[j]);

let newNumb = parseInt(numb[j]);

0
20/02/2019 19:02:44
DobrinMarkov avatar DobrinMarkov 2 Точки

Благодаря за помощта и на двата ми въпроса. Много полезен отговор :)

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.