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

Укажите наименьшее из таких чисел x, при вводе которого алгоритм печатает сначала 3, а потом 4. var x, a, b: integer; begin readln(x); a: =0; b: =0; while x> 0 do begin a: =a + 1; if b < (x mod 8) then b: =x mod 8; x: =x div 8; end; writeln(a); write(b); end.

👇
Ответ:
wolfwithyou
wolfwithyou
13.05.2022

При x = 68;

Как проверял:

var

 x, a, b, i: integer;

begin

 for i := 1 to 1000 do

 begin

   x := i;

   a := 0;  

   b := 0;

   while x > 0 do

   begin

     a := a + 1;

     if b < (x mod 8)

       then b := x mod 8;

     x := x div 8;

   end;

   if (a = 3) and (b = 4) Then

   begin

     writeln(i);

     break;

   end;

 end;  

end.

Взял 1000 потому что думал, что должно быть меньше. Если бы программа не сработала взял бы либо отрицательные числа, либо больше тысячи (возможно бы пришлось изменить тип данных).

4,6(36 оценок)
Открыть все ответы
Ответ:
anastasiaruabenko
anastasiaruabenko
13.05.2022
        static void Main()
        {
            double a = float.Parse(Console.ReadLine()),
                   b = float.Parse(Console.ReadLine()),
                   c = float.Parse(Console.ReadLine()),
                   d;
            if (a > b) swap(ref a, ref b);
            if (b > c) swap(ref c, ref b);
            if (a > b) swap(ref a, ref b);
            if (b > c) swap(ref c, ref b);
            d = Math.Sqrt(Math.Pow(a, 2) + Math.Pow(b, 2));
            if (a + b <= c)
            {
                Console.WriteLine("Нет ▲");
            }
            else
            {
                if (d == c)
                    Console.WriteLine("Прямоугольный");
                else
                    if (d < c)
                        Console.WriteLine("Тупоугольный");
                    else
                        Console.WriteLine("Остроугольный");
            }
            Console.ReadKey(false);
        }
        private static void swap(ref double a, ref double b)
        {
            double c = a;
            a = b;
            b = c;
        }
4,8(48 оценок)
Ответ:
314159026
314159026
13.05.2022
Function Dec2Oct(n: integer): string;
var
  c, s: string;
  iquo, irem: integer;
begin
  s := '';
  iquo := n;
  while iquo <> 0 do
  begin
    irem := iquo mod 8;
    iquo := iquo div 8;
    Str(irem, c);
    s := c + s
  end;
  if Length(s) = 0 then Result := '0'
  else Result := s
end;

var
  m: array[1..8] of integer;
  i: integer;

begin
  Randomize;
  for i := 1 to 8 do
  begin
    m[i] := Random(10000);
    writeln(m[i]:5, '(10)=', Dec2Oct(m[i]), '(8)')
  end
end.

Тестовое решение:

  973(10)=1715(8)
 7245(10)=16115(8)
 2511(10)=4717(8)
 5136(10)=12020(8)
 8002(10)=17502(8)
 7101(10)=15675(8)
 4277(10)=10265(8)
 5916(10)=13434(8)

Если вместо функции нужна процедура, достаточно заменить несколько строчек.

procedure Dec2Oct(n: integer; s: string);
var
  c: string;
  iquo, irem: integer;
begin
  s := '';
  iquo := n;
  while iquo <> 0 do
  begin
    irem := iquo mod 8;
    iquo := iquo div 8;
    Str(irem, c);
    s := c + s
  end;
  if Length(s) = 0 then s := '0'
end;
4,5(93 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ