program parampampam; uses crt; var i: integer; {счетчик} s: integer; begin clrscr; {очистка экрана} writeln ('Программа выводит числа от 1 до 99, сумма цифр которых равна числу S'); writeln ('Введите число S, от 0 до 18: '); {ввод числа S с проверкой на корректность} repeat readln (s); if (s>18) or (s<0) then writeln ('Неверный ввод. Повторите') until (s<=18) and (s>=0); {вывод нужных чисел на экран (цикл с предусловием)} for i := 1 to 99 do if ((i div 10) + (i mod 10) = s) then {div дает целую часть, mod - остаток от деления} write (i, ' '); repeat until keypressed; {пустой цикл для задержки экрана до нажатия клавиши} end.
uses crt;
var
i: integer; {счетчик}
s: integer;
begin
clrscr; {очистка экрана}
writeln ('Программа выводит числа от 1 до 99, сумма цифр которых равна числу S');
writeln ('Введите число S, от 0 до 18: ');
{ввод числа S с проверкой на корректность}
repeat
readln (s);
if (s>18) or (s<0) then
writeln ('Неверный ввод. Повторите')
until (s<=18) and (s>=0);
{вывод нужных чисел на экран (цикл с предусловием)}
for i := 1 to 99 do
if ((i div 10) + (i mod 10) = s) then {div дает целую часть, mod - остаток от деления}
write (i, ' ');
repeat until keypressed; {пустой цикл для задержки экрана до нажатия клавиши}
end.
Стандартный алгоритм на плюсах:
НО мне кажется что в задании есть опечатка и нужно найти числа, где средняя равна сумме первой и третьей.
Навсякий приведу и тот и тот вариант
1) Вариант(КАК В ЗАДАНИИ)
#include <iostream>
using std::cin,std::cout,std::endl;
int main(){
for (size_t a=0; a<=9;++a){
for (size_t b =0;b<=9;++b){
for (size_t c = 0; c<=9;++c){
if (b == a+b)
cout << a << b<<c << endl;
}
}
}
return 0;
}
2) Вариант2 (как я думаю)
#include <iostream>
using std::cin,std::cout,std::endl;
int main(){
for (size_t a=0; a<=9;++a){
for (size_t b =0;b<=9;++b){
for (size_t c = 0; c<=9;++c){
if (b == a+c)
cout << a << b<<c << endl;
}
}
}
return 0;
}