Задача 6. Найти наименьшее натуральное число, дающее при делении на 2, 3, 4, 5, 6 соответственно остатки 1, 2, 3, 4, 5. — КиберПедия 

Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...

Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...

Задача 6. Найти наименьшее натуральное число, дающее при делении на 2, 3, 4, 5, 6 соответственно остатки 1, 2, 3, 4, 5.

2020-12-06 662
Задача 6. Найти наименьшее натуральное число, дающее при делении на 2, 3, 4, 5, 6 соответственно остатки 1, 2, 3, 4, 5. 0.00 из 5.00 0 оценок
Заказать работу

Решение

Алгоритм решения. Б ерется наименьшее натуральное число - единица и находятся остатки от деления его на 2, 3, 4, 5 и 6; если остатки будут равны 1, 2, 3, 4 и 5, тогда это число является искомым, его надо выдать на экран и закончить программу, в противном случае, надо брать следующее натуральное число - 2 и проверять его, и так далее.

Program Problem 6;

uses WinCrt;

var

   n: integer;

begin

  n:= 0;

  repeat

     n:= n + 1;

  until (n mod 2 = 1) and (n mod 3 = 2) and (n mod 4 = 3) and

          (n mod 5 = 4) and (n mod 6 = 5);

   writeln('Искомое целое число ', n)

end.

Задача 7. Числа, одинаково читающиеся и слева направо, и справа налево, называются палиндромами. Например, числа 42324 или 1331 - палиндромы. Составьте программу, которая будет находить числа - палиндромы из заданного промежутка

Решение

Алгоритм решения. Переставить цифры в числе и сравнить полученное число с заданным.

Пусть заданное число a, тогда введем еще одну переменную b, которой будет присвоено значение переменной a (для чего это делается вы узнаете позже): b:= a;

Заведем еще одну переменную a1 для нового числа, в котором цифры уже будут переставлены.

Первоначальное значение этой переменной - ноль: a1:= 0;

Почему значение этой переменной равно нулю станет ясно из программы.

Далее организуем цикл repeat, в котором будет происходить перестановка цифр числа b:

                                       repeat

a1:= a1*10 + b mod 10;

                                     b:= b div 10

                                       until b = 0;

 

Итак, в цикле, также как и в цикле while... do..., отделяется последняя цифра:

b mod 10; (например, 343 mod 10 = 3); переменной a1 присваивается значение:

a1:= a1*10 + b mod 10; 0 * 10 + 3 =3;

" отбрасывается " последняя цифра заданного числа с помощью операции целочисленного деления:

b:= b div 10; 343 div 10 = 34;

проверяется условие: b = 0, 34 = 0, условие не выполняется, значит цикл продолжается.

Отделяется последняя цифра уже нового числа:

b mod 10 = 34 mod 10;

новое число a1, уже равное 3, умножается на 10 и к результату прибавляется следующая цифра - 4:

a1:= a1*10 + b mod 10;

" отбрасывается " последняя цифра числа b:

b:= b div 10; 34 div 10 = 3;

проверяется условие: b = 0, 3 = 0; условие не выполняется, значит цикл продолжается.

Отделяется последняя цифра числа:

b mod 10; 3 mod 10 = 3;

формируется новое число:

a1:= a1*10 + b mod 10; 34 * 10 + 3 = 343;

" отбрасывается " последняя цифра числа и получается новое число:

b:= b div 10; 3 div 10 = 0;

проверяется условие: b = 0, 0 = 0; условие выполняется, значит цикл заканчивается.

Теперь становится ясно, почему введена другая переменная b для заданного числа, ее значение в цикле меняется от начального до нуля и, чтобы сохранить заданное число в переменной a, и вводится, так сказать, " рабочая " переменная - b.

После окончания цикла перестановки цифр числа, сравнивается первоначальное число, которое " сохранилось " в переменной a и число, которое получилось после перестановки цифр и " накопилось " в переменной a1.

Если a = a1, тогда значение a выдается на экран, так как это число является палиндромом.

Далее, значение a увеличивается на 1, т. е. берется для рассмотрения следующее по порядку натуральное число и снова продолжается внешний цикл. Цифры числа переставляются, полученное новое число после перестановки цифр - a1, сравнивается с первоначальным a и так далее.

Внешний цикл заканчивается, когда значение a становится равным правой границе интервала - n.

Program Problem 7;

uses Crt;

var

   m, n, a, b, a1: longint;

begin

   write('Введите левую границу промежутка '); readln(m);

   write('Введите правую границу промежутка '); readln(n);

   a:= m;

   writeln('Числа палиндромы из [', m, ';', n, ']');

      repeat

         b:= a; a1:= 0;

            repeat

               a1:= a1*10 + b mod 10;

               b:= b div 10

            until b=0;

         if a1 = a then write(a, ' ');

         a:= a + 1

      until a > n;

end.

 

Задача 8. Программа, подсчитывающая сумму цифр числа.

Решение

Program Sum; { Сумма цифр числа }

uses Crt;

var

   n, s, a: integer;

begin

   write(' Введите целое число '); readln(n);

   a:= n; s:= 0;

     repeat

        s:= s + n mod 10; n:= n div 10

     until n = 0;

   writeln(' Сумма цифр числа ', a, ' равна ', s)

end.

 

Задача 9. Программа перестановки первой и последней цифр в числе:

 

Решение

Program Transpose;

uses Crt;

var

   n, n1, p, a, i: longint;

begin

   write('Введите натуральное число n '); readln(n);

   a:= n; i:= 1;

   p:= n mod 10; {последняя цифра введенного числа}

      repeat

         i:= i*10; n:= n div 10

      until n<10;

   n1:= a - n*i - p + n + p*i;

  writeln('Число после перестановки цифр ', n1)

end.

 

Задача 10. Если мы сложим все цифры какого-либо числа, затем - все цифры найденной суммы и будем повторять это много раз, мы наконец получим однозначное число (цифру), называемое цифровым корнем данного числа. Например, цифровой корень числа 561 равен 3 (5 + 6 + 1 = 12; 1 + 2 = 3). Составьте программу для нахождения числового корня числа.

Решение

Program Problem10; { Цифровой корень числа }

uses Crt;

var

  n, a, s: integer;

begin

  write('Введите натуральное число '); readln(n);

  a:= n;

repeat

    s:= 0;

      while n <> 0 do

          begin

             s:= s + n mod 10; n:= n div 10

          end;

    n:= s

  until n < 10;

writeln('Цифровой корень числа ', a, ' равен ', n)

end.

Задача 11. Составить программу определения всех делителей числа n.

Решение

Способ

Program Problem11; { Простой алгоритм. 1 - способ }

uses Crt;

var

  n, d: integer;

begin

  write(' Введите целое число '); readln(n);

  d:= 1;

  writeln('Делители числа ', n);

     repeat

        if n mod d = 0 then write(d, ' ');

        d:= d + 1

     until d > n div 2;

  write(n)

end.

Способ

Program Problem 1 1a; { Делители числа. 2 - способ }

uses Crt;

var

  n, d: integer;

begin

  write(' Введите целое число '); readln(n);

  writeln('Делители числа ', n);

    d:= 1;

    while d*d < n do

         begin

           if n mod d=0 then write(d, ' ', n div d, ' ');

           d:= d + 1

        end;

    if d*d = n then write(d); writeln

end.

 


Поделиться с друзьями:

Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...

Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...

Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьше­ния длины пробега и улучшения маневрирования ВС при...

Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.025 с.