М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
Crazs
Crazs
01.09.2022 08:45 •  Информатика

Напишите программу, которая получает с клавиатуры натуральное число и определяет, есть ли в его десятичной записи одинаковые цифры, стоящие рядом питон, с использованием цикла while и если не сложно с объяснениями

👇
Ответ:
araitokbasova
araitokbasova
01.09.2022

Var

N,A:integer;

Begin

Write('N = ');Read(N);

A:=0;

While N>0 do

   Begin

   if (N mod 10) > A then A:= N mod 10;

   N:=N div 10;

   End;

Write(A)

End.

Var

N,A,B:integer;

C:boolean;

Begin

Write('N = ');Read(N);

A:=-1;

B:=-2;

C:=false;

While N>0 do

   Begin

   if A=B then C:=true;

   if N>0 then

      Begin

      A:=N mod 10;

      N:=N div 10;

      End;

   if A=B then C:=true;

   if N>0 then

      Begin

      B:=N mod 10;

      N:=N div 10;

      End;

   End;

if A=B then C:=true;

if C then Write('Есть')

else Write('Нет')

End.

4,6(65 оценок)
Открыть все ответы
Ответ:
madinaseidahmet
madinaseidahmet
01.09.2022
1. "Школьное" решение

// PascalABC.NET 3.0, сборка 1073
const
  sb='bcdfgjklmnpqrstvwxz';
  s='Computer programming is a process of computer programs creation';
var
  i,n:integer;
  s1,sn,t:string;
begin
  i:=1;
  while s[i]<>' ' do Inc(i);
  s1:=Copy(s,1,i-1);
  n:=Length(s); i:=n;
  while s[i]<>' ' do Dec(i);
  sn:=Copy(s,i+1,n-i);
  t:='';
  for i:=1 to Length(s1) do
    if Pos(s1[i],sb)>0 then t:=t+s1[i];
  s1:=t;
  t:='';
  for i:=1 to Length(sn) do
    if Pos(sn[i],sb)>0 then t:=t+sn[i];
  sn:=t;
  t:='';
  for i:=1 to Length(s1) do
    if Pos(s1[i],sn)>0 then
      if Pos(s1[i],t)=0 then t:=t+s1[i];
  for i:=1 to Length(t) do Write(t[i],' ');
  Writeln
end.
 
Тестовый прогон:
t r

2. "Нормальное" решение

// PascalABC.NET 3.0, сборка 1073
const
  sb='bcdfgjklmnpqrstvwxz';
  s='Computer programming is a process of computer programs creation';
begin
  var a:=s.ToWords(' ');
  a[0].Intersect(a[a.Length-1]).Where(x->Pos(x,sb)>0).Println(',')
end.

Тестовый прогон:
t,r
4,7(96 оценок)
Ответ:
andreykakachnov
andreykakachnov
01.09.2022
1. Для нахождения НОД используем алгоритм Евклида.

var
  a, b, i: integer;

begin
  Write('Введите два натуральных числа '); Readln(a, b);
  while b <> 0 do
  begin
    a := a mod b;
    i := b; b := a; a := i
  end;
  Writeln('НОД этих чисел равен ', a)
end.

Тестовое решение:
Введите два натуральных числа 3264 1296
НОД этих чисел равен 48

2. Тут все намного проще, алгоритм очевиден.

var
  a, i: integer;

begin
  Write('Введите натуральное число '); Readln(a);
  i := 2;
  while (a mod i) <> 0 do i := i + 1;
  Writeln('Минимальный делитель равен ', i)
end.

Тестовое решение:
Введите натуральное число 187
Минимальный делитель равен 11
4,8(40 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ