В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
KsushaBushueva
KsushaBushueva
18.04.2022 14:49 •  Информатика

Паскаль, процедуры, , , потому что не проходили их, а задали : с

Показать ответ
Ответ:
vadimkaIVA
vadimkaIVA
18.04.2022 17:08
Программа на языке PascalABC

program raf105;

var abc,ab,bc:integer;

begin

write('Введите трёхзначное число: ');

readln(abc);

ab:= abc mod 100;

bc:= abc div 10;

if ab = bc

 then writeln('Число состоит из одинаковых цифр')

 else writeln('Число не состоит из одинаковых цифр');

end.

Объяснение

Для выполнения задачи достаточно найти первые 2 цифры и последние 2 цифры если они равны, то число состоит из одинаковых цифр

abc mod 100 Убирает все сотни из числа.

Например было число 123, стало 23.

482 стало 82

abc div 10 Считает сколько в числе целых десяток, но не считает остаток.

Например было число 123, стало 12

482 стало 48

Сравнивание 2 первых и 2 последних цифр

253      25 и 53 не равны, значит число не состоит из одинаковых цифр

121       12 и  21 не равны, значит число не состоит из одинаковых цифр

111        11 и 11  равны, значит число состоит из одинаковых цифр

0,0(0 оценок)
Ответ:
matveyelmakov
matveyelmakov
04.01.2020 20:01
Более изящное решение :)

Проблема в строке c:= (b*b*b);
Ты ищешь сумму кубов, а для 4-значных чисел нужно искать сумму 4-х степеней. Нужно проверять число а: если от 100 до 999, то выполняем c:= (b*b*b); а если от 1000 до 9999, то выполняем c:= (b*b*b*b); 

Код ниже работает и выдаёт результат:
число Армстронга ==> 153
число Армстронга ==> 370
число Армстронга ==> 371
число Армстронга ==> 407
число Армстронга ==> 1634
число Армстронга ==> 8208
число Армстронга ==> 9474


var a,b,c,d,a2:integer;
begin
for a:=100 to 9999 do begin
d:=0;
a2:=a;
while (a2 <> 0) do begin
b:= a2 mod 10;
a2:= a2 div 10;
if a<1000 then c:= (b*b*b)
      else c:= (b*b*b*b);
d:= d+c;
end;
if (a = d) then writeln('число Армстронга ==> ', a);
end;
end.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота