Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


II.14. Целочисленная арифметика



Задание: Составить программу к решению задачи: «Дано целое число N. Найти произведение цифр этого числа».

Решение:

Для того чтобы найти произведение цифр числа, необходимо знать эти цифры. Алгоритм нахождения цифр уже обсуждался ранее (последнюю цифру находим с помощью остатка от деления на 10 и укорачиваем число на эту цифру делением числа на 10 нацело, затем процесс повторяется, пока не будут найдены все цифры числа). Но в ранее рассмотренных задачах, заранее оговаривалось количество цифр заданного числа. В этой задаче количество цифр может быть произвольным.

Пусть Х – переменная, в которой будет храниться цифра числа, найденная в текущий момент. Пусть Р – произведение цифр. Вначале работы программы Р равно 1, т.к. при поиске произведения, переменную нельзя обнулять (сколько 0 не умножай – результатом будет 0).

Если повторять операторы

X=N MOD 10

N=N\10

P=P*X, то постепенно в переменной Р будет получаться произведение цифр числа N.

Убедимся в этом на конкретном примере. Допустим N=2584.

  X N P
До выполнения операторов X=N MOD 10 N=N\10 P=P*X 0 2584 1
После первого выполнения операторов 4 258 4
После второго выполнения операторов 8 25 32
После третьего выполнения операторов 5 2 160
После четвертого выполнения операторов 2 0 320

 

В этом примере операторы повторялись 4 раза, так как число было четырехзначным, но по условию задачи количество цифр может быть любым, поэтому количество повторений не известно. Чтобы применить для решения задачи оператор цикла с предусловием, нужно выяснить условие, при котором следует выполнять данную серию операторов. Рассмотрим на примере еще одного числа. Допустим N=319.

  X N P
До выполнения операторов 0 319 1
После первого выполнения операторов 9 31 9
После второго выполнения операторов 1 3 9
После третьего выполнения операторов 3 0 27

 

Сопоставляя примеры, можно сделать вывод, что операторы повторяются до тех пор, пока число N не станет равным 0. Условие работы цикла N< > 0.

Итак, в программе необходимо реализовать следующий алгоритм:

1. ввести число N;

2. P=1;

3. в цикле с предусловием N< > 0

a) вычислить цифру Х;

b) оторвать цифру от исходного числа;

c) увеличить произведение;

4. вывести результат.

Программа:

CLS

PRINT “введите заданное число”

INPUT N

P=0

WHILE N< > 0

X=N MOD 10

N=N\10

  P=P*X

WEND

PRINT “произведение цифр числа равно ”, P

END

 

Задание: Составить программу к решению задачи: «Дано целое число n. Является ли число перевертышем? Например, 56465 – читается одинаково в ту и другую сторону».

Решение:

Для того, чтобы определить, является ли число перевертышем, необходимо перевернуть это число и проверить, равно ли оно исходному. Пусть Y – перевернутое число. Чтобы его получить, нужно собрать по разрядам цифры исходного числа, но в обратном порядке.

В этой задаче количество цифр может быть произвольным, поэтому цифры будем находить так же, как и в предыдущей задаче. Пусть X – переменная, в которой будет храниться цифра числа, найденная в текущий момент.

Рассмотрим, на конкретном примере: допустим N=2584.

  X N У

Получение числа у

До выполнения операторов X=N MOD 10 N=N\10 У=??? 0 2584 0
После первого шага цикла 4 258 4 0*10+4
После второго шага цикла 8 25 48 4*10+8
После третьего шага цикла 5 2 485 48*10+5
После четвертого шага цикла 2 0 4852 485*10+2

Выясним, каким должен быть оператор нахождения числа Y. Из последнего столбца таблицы видно, что содержимое переменной Y на каждом шаге работы цикла увеличивается в 10 раз и к нему прибавляется цифра, найденная на соответствующем шаге работы цикла (Y=Y*10+х).

Если повторять операторы

X=N MOD 10

N=N\10

Y=Y*10+Х, то в итоге в переменной Y будет перевернутое число. Останется сравнить его с данным. Но, в процессе работы цикла, число N превратилось в ноль. Поэтому необходимо перед циклом сохранить данное число в дополнительной переменной. Пусть это будет переменная K.

Итак, в программе необходимо реализовать следующий алгоритм:

1. ввести число N;

2. сохранить данное число в переменной K;

3. в цикле с предусловием N< > 0

a) вычислить цифру Х;

b) оторвать цифру от исходного числа;

c) увеличить число Y;

4. сравнить числа K и Y и вывести результат.

Программа:

CLS

PRINT “введите заданное число”

INPUT N

K=N: Y=0

WHILE N< > 0

X=N MOD 10

N=N\10

Y=Y*10+X

WEND

IF K=Y THEN PRINT “является перевертышем” ELSE PRINT “не является перевертышем”

END

 

Задания для самостоятельного решения:

1. Женщина шла на базар продавать яйца. Ее случайно сбил с ног всадник, в результате чего все яйца разбились. Всадник предложил оплатить убытки и спросил, сколько у нее было яиц. Женщина сказала, что точного числа она не помнит, но когда она брала яйца парами, то оставалось одно яйцо. Одно яйцо оставалось также, когда она брала по 3, 4, 5 и 6 яиц, но когда она брала по 7 штук, то в остатке ничего не было. Напишите программу, которая определит какое минимальное число яиц было в корзине.

2. Дано натуральное число N. каких цифр в числе больше: четных или нечетных.

3. Дано натуральное число N. Получить новое число, приписав к числу N такое же.

4. Дано натуральное число N. Найти разницу между максимальной и минимальной цифрами числа.

5. Дано натуральное число N. Приписать к числу по краям единички.

6. Дано натуральное число N. Обрезать крайние цифры числа.

7. Написать программу перевода числа n в систему с основанием k (1< k< 10).

 

Приложения


Поделиться:



Последнее изменение этой страницы: 2019-03-30; Просмотров: 77; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.015 с.)
Главная | Случайная страница | Обратная связь