Уведомления

Группа в Telegram: @pythonsu

#1 Июль 22, 2017 14:36:05

Romanromaa5999
Зарегистрирован: 2017-07-22
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите разобраться как работает программа

Добрый день!

программа должна рассчитать наименьшее общее кратное, т.е. мы вводим число a затем число b, и она выводит наименьшее общее кратное:

a = int(input())
b = int(input())
m = a * b
while a != 0 and b != 0:
if a > b:
a %= b
else:
b %= a
print (m // (a + b ))

только непонятно как она работает:
допустим мы ввели числа 9 и 8, т.е. a=9 и b=8.
m = a * b т.е. 9*8=72
if a>b: т.е. if 9>8
a%=b т.е. a=a%b=9%8=1
print(m//(a+b)) т.е. 72//(1+8)=72//9=8
так почему она выдаёт 72?

Офлайн

#2 Июль 22, 2017 14:47:32

scidam
Зарегистрирован: 2016-06-15
Сообщения: 288
Репутация: +  35  -
Профиль   Отправить e-mail  

помогите разобраться как работает программа

Romanromaa5999
так почему она выдаёт 72?

Так как при a=1 и b=8 вы еще не вышли из цикла while, а выйдете из цикла, когда будет b=0, a=1, и тогда 72//1=72.

Офлайн

#3 Июль 22, 2017 14:58:45

Romanromaa5999
Зарегистрирован: 2017-07-22
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите разобраться как работает программа

Спасибо большое, давно над этим думаю.

Офлайн

#4 Июль 22, 2017 15:09:21

Romanromaa5999
Зарегистрирован: 2017-07-22
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите разобраться как работает программа

а почему здесь мы используем and в этом выражении: while a != 0 and b != 0:
разве не or?

Офлайн

#5 Июль 22, 2017 15:16:39

Romanromaa5999
Зарегистрирован: 2017-07-22
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите разобраться как работает программа

а всё я понял. спасибо

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version