var
Numbers: array [1..6] of integer;
x, summ12, summ56, countN, r : integer;
begin
for var i := 100000 to 999999 do begin
// берем каждое число от 100000 до 999999
x := i;
for var j := 1 to 6 do begin
// mod - получаем остаток от деления X на 10
// например для 12345.6 остаток от деления - 6
Numbers[7 - j] := x mod 10;
//записываем цифры в обратном порядке (справа налево), поэтому [7 - j]
// div - получаем целую часть числа от деления X на 10
// например, для 1234.5 целая часть - 12345
x := x div 10;
// теперь X будет на 1 разряд меньше (например X = 12345)
// делим 6 раз X на 10
// например (1) 12345.[6] => (2) 1234.[5] => (3) 123.[4] => (4) 12.[3] => (5) 1.[2] = > 0.[1]
end;
// считаем суммы двух первых и последних
summ12 := Numbers[1] + Numbers[2];
summ56 := Numbers[5] + Numbers[6];
// и разницу между суммами
r := summ12 - summ56;
// разница может быть 5 или -5
// abs() - возвращает модуль числа
// приводим разницу в положительное число
// если разница не более 5, то число счастливое
if(abs(r) <= 5) then countN := countN + 1;
writeln('Количество счастливых чисел: ', countN);
end.
Объяснение:
для PascalABC
это задача под номером 2
Получив цифры с
x mod y
x div y
можно (для других задач) изменить расчет суммы и условие счета количества
var
Numbers: array [1..6] of integer;
x, summ12, summ56, countN, r : integer;
begin
for var i := 100000 to 999999 do begin
// берем каждое число от 100000 до 999999
x := i;
for var j := 1 to 6 do begin
// mod - получаем остаток от деления X на 10
// например для 12345.6 остаток от деления - 6
Numbers[7 - j] := x mod 10;
//записываем цифры в обратном порядке (справа налево), поэтому [7 - j]
// div - получаем целую часть числа от деления X на 10
// например, для 1234.5 целая часть - 12345
x := x div 10;
// теперь X будет на 1 разряд меньше (например X = 12345)
// делим 6 раз X на 10
// например (1) 12345.[6] => (2) 1234.[5] => (3) 123.[4] => (4) 12.[3] => (5) 1.[2] = > 0.[1]
end;
// считаем суммы двух первых и последних
summ12 := Numbers[1] + Numbers[2];
summ56 := Numbers[5] + Numbers[6];
// и разницу между суммами
r := summ12 - summ56;
// разница может быть 5 или -5
// abs() - возвращает модуль числа
// приводим разницу в положительное число
// если разница не более 5, то число счастливое
if(abs(r) <= 5) then countN := countN + 1;
end;
writeln('Количество счастливых чисел: ', countN);
end.
Объяснение:
для PascalABC
это задача под номером 2
Получив цифры с
x mod y
x div y
можно (для других задач) изменить расчет суммы и условие счета количества