Софтуерно Инженерство
Loading...
Yordan.Vachev avatar Yordan.Vachev 2 Точки

equal sums left right positions

Някои може ли да ми помогне с решение на тази задачка

 

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

© Software University Foundation. This work is licensed under the CC-BY-NC-SA license.
Follow us: Page 5 of 12
10100 10100 групи - двете най- десни цифри, двете най- леви и средната. Сумата на двете
най- десни цифри е 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. Ново получената сума сравняваме със сумата на левите цифри.
Двете суми са равни, числото отговаря на условията и се отпечатва.
Вход Изход Вход Изход Вход Изход
12345
12666

12351 12360
12403 12407
12412 12416
12421 12425
12430 12434
12443 12452
12461 12470
12503 12508
12512 12517
12521 12526
12530 12535
12544 12553
12562 12571
12580 12603
12609 12612
12618 12621
12627 12630
12636 12645
12654 12663
99000
99199

99099 99189
99198 99199

19995

Тагове:
0
Programming Basics with C++
RuNNeR4142 avatar RuNNeR4142 394 Точки

Нужен е for от първото до второто число, вътре ти трябва:

променлива за дясното число което ще е 4тата цифра + 5тата цифра
променлива за средното число което ще е 3тата цифра, давам жокер (i / 100) % 10; другите опитай сам да ги намериш
променлива за лявото число което ще е 1вата + 2рата цифра.

проверката ще е:
ако лявото число е равно на дясното ИЛИ
ако разликата между лявото и дясното (Math.abs) минус средното число е равна на 0,
отпечатваш цялото 5цифрено число с място. Това е! Упех!

0
20/07/2019 01:08:39