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
можно (для других задач) изменить расчет суммы и условие счета количества
1)
#include <iostream>
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
int number = 0;
cout << "Введите трехзначное число: ";
cin >> number;
if(number > 999 or number < 100){
cout << "Ошибка, Вы ввели не трехзначное число";
}else{
int n1;
int n2;
int n3;
cout << endl;
n1 = number%10;
cout << n1 << endl;
n2 = (number%100 - n1)/10;
cout << n2 << endl;
n3 = (number - (number%100))/100;
cout << n3 << endl;
cout << endl << endl;
cout << "Результат: " << n1 << n2 << n3;
}
cout << endl << endl << endl;
return 0;
2)
cout << "Введите пятизначное число: ";
//cin >> number;
number = 12345;
if(number > 99999 or number < 10000){
cout << "Ошибка, Вы ввели не пятизначное число";
int n4;
int n5;
n3 = (number%1000 - number%100)/100;
n4 = (number%10000 - number%1000)/1000;
cout << n4 << endl;
n5 = (number%100000 - number%10000)/10000;
cout << n5 << endl;
cout << "Сума: " << n1+n2+n3+n4+n5;
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
можно (для других задач) изменить расчет суммы и условие счета количества
1)
#include <iostream>
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
int number = 0;
cout << "Введите трехзначное число: ";
cin >> number;
if(number > 999 or number < 100){
cout << "Ошибка, Вы ввели не трехзначное число";
}else{
int n1;
int n2;
int n3;
cout << endl;
n1 = number%10;
cout << n1 << endl;
n2 = (number%100 - n1)/10;
cout << n2 << endl;
n3 = (number - (number%100))/100;
cout << n3 << endl;
cout << endl << endl;
cout << "Результат: " << n1 << n2 << n3;
}
cout << endl << endl << endl;
return 0;
}
2)
#include <iostream>
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
int number = 0;
cout << "Введите пятизначное число: ";
//cin >> number;
number = 12345;
if(number > 99999 or number < 10000){
cout << "Ошибка, Вы ввели не пятизначное число";
}else{
int n1;
int n2;
int n3;
int n4;
int n5;
cout << endl;
n1 = number%10;
cout << n1 << endl;
n2 = (number%100 - n1)/10;
cout << n2 << endl;
n3 = (number%1000 - number%100)/100;
cout << n3 << endl;
n4 = (number%10000 - number%1000)/1000;
cout << n4 << endl;
n5 = (number%100000 - number%10000)/10000;
cout << n5 << endl;
cout << endl << endl;
cout << "Сума: " << n1+n2+n3+n4+n5;
}
cout << endl << endl << endl;
return 0;
}