Завдання № 10. Перевірити, чи є чотиризначний число щасливим квитком » Pascal - основи програмування

Основи програмування на мові Pascal

 

Спонсори

Завдання № 10. Перевірити, чи є чотиризначний число щасливим квитком

Завдання № 10. Перевірити, чи є чотиризначний число щасливим квитком
Формулювання. Дано чотиризначний число. Перевірити, чи є воно «щасливим бі-влітку».
Примітка: щасливим квитком називається число, в якому: а) при парній кількості цифр в числі сума цифр його лівої половини дорівнює сумі цифр його правої половини; б) при непарній кількості цифр - те ж саме, але з відкиданням серединної цифри. Наприклад, рас-дивимося число 1322. Його ліва половина дорівнює 13, а права - 22, і воно є щасливим біле-том (т. К. 1 + 3 = 2 + 2). Аналогічно: 1735 (1 + 7 = 3 + 5), 1111 (1 + 1 = 1 + 1) і т. Д.
Приклади інших щасливих квитків за рамками умови поточного завдання: 7 (відкинули єдину цифру), 39466 (3 + 9 = 6 + 6, а 4 відкинули), 11 (1 = 1), і т. Д.
Рішення. Для введення достатньо однієї змінної n типу word. Все, що необхідно зроби-ти для вирішення - це послідовно отримати всі розряди вихідного числа, причому з двох молодших розрядів (одиниць і десятків) сформувати першу суму, а з двох старших розрядів - другу, після чого вивести на екран результат булевского вираження рівності отриманих сум. Першу суму будемо зберігати в змінної right, а другу - в змінній left (обрано по розташуванню цифр у записі числа). Значення обох з них не може перевершувати 18 (т. К. Для найбільшого допустимого числа 9999 обидві суми рівні 9 + 9 = 18), тому для їх опису використовуємо тип byte.
Більш детальний розбір алгоритму:
1) Вводимо число n;
2) Надаємо змінної right значення останньої цифри числа n, потім відкидаємо цю цифру, потім повторюємо те ж саме, але на цей раз вже додаємо добуту цифру до колишнього значення right:

right: = n mod 10;
n: = n div 10;
right: = right + n mod 10;
n: = n div 10;

3) Надаємо змінної left останню цифру n, відкидаємо її і додаємо до right єдину, що залишилася у змінній n цифру:
left: = n mod 10;
n: = n div 10;
left: = left + n;

4) Виводимо на екран результат порівняння накопичених сум:
writeln (left = right);

Код:


  1. program HappyTicket;
  2. var
  3. n: word;
  4. left, right: byte;
  5. begin
  6. readln(n);
  7. right := n mod 10;
  8. n := n div 10;
  9. right := right + n mod 10;
  10. n := n div 10;
  11. left := n mod 10;
  12. n := n div 10;
  13. left := left + n;
  14. writeln(left = right)
  15. end.

zavdannya-10.rar [506 b] (cкачувань: 12)

скачать dle 10.4фильмы бесплатно Наступна сторінка » Завдання № 11. Перевірити, чи є двійков... Попередня сторінка » Завдання № 9. Перевірити, чи є чотиризн...