print(" OR: %s" % bin(bit_or))
print("AND: %s" % bin(bit_and))
print("XOR: %s" % bin(bit_xor))
Результат:
Первое: 10100
Второе: 111
OR: 0b10111
AND: 0b100
XOR: 0b10011
Вводится трехзначное число. Написать программу, которая вычисляет сумму его цифр.
(Это задача на линейные алгоритмы, если требуется найти сумму цифр числа произвольной длины с помощью цикла см. задачу "Сумма и произведение цифр числа".)
Например, если было введено 349, программа должна вывести на экран число 16, так как 3 + 4 + 9 = 16.
Как извлечь отдельные цифры из числа? Если число разделить нацело на десять, в остатке будет последняя цифра этого числа. Например, если 349 разделить нацело на 10, то получится частное 34 и остаток 9. Если потом 34 разделить также, получится частное 3 и остаток 4; далее при делении 3 на 10 получим частное 0 и остаток 3.
В языках программирования почти всегда есть две операции:
1) нахождение целого при делении нацело,
2) нахождение остатка при делении нацело.
В языке программирования Python первая операция обозначается // (двумя знаками деления), а вторая - % (знаком процента). Например:
>>> 34 // 10
3
>>> 34 % 10
4
Примечание. Операции деления нацело и нахождения остатка с точки зрения арифметики применимы только к целым числам. Но в Python их можно использовать и по отношению к дробным числам:
>>> 34.5 % 10
4.5
>>> 34.5 // 10
3.0
>>> 34.5 // 12.9
2.0
Алгоритм нахождения суммы цифр трехзначного числа abc (где a - сотни, b - десятки и c - единицы) можно описать так:
Найти остаток от деления abc на 10, записать его в переменную d1. Это будет цифра c.
Избавиться от цифры c в числе abc, разделив его нацело на 10.
Найти остаток от деления ab на 10, записать его в переменную d2. Это будет цифра b.
Избавиться от цифры b в числе ab, разделив его нацело на 10.
Число a однозначное. Это еще одна цифра исходного числа.
Сложить оставшееся число a со значениями переменных d1 и d2.
n = input("Введите трехзначное число: ")
n = int(n)
d1 = n % 10
n = n // 10
d2 = n % 10
n = n // 10
print("Сумма цифр числа:", n + d2 + d3)
Пример выполнения программы:
Введите трехзначное число: 742
Сумма цифр числа: 13
Однако, если нам известно, что число состоит из трех разрядов (цифр), есть немного другой способ извлечения цифр из числа:
Остаток от деления на 10 исходного числа дает последнюю цифру числа.
Если найти остаток от деления на 100 исходного числа, то мы получи последние две цифры числа. Далее следует разделить полученное двухзначное число нацело на 10, и у нас окажется вторая цифра числа.
Если исходное трехзначное число разделить нацело на 100, то получится первая цифра числа.
n = input("Введите трехзначное число: ")
n = int(n)
d1 = n % 10
d2 = n % 100 // 10
d3 = n // 100
print("Сумма цифр числа:", d1 + d2 + d3)
В Python данную задачу можно решить без использования арифметических действий, а путем извлечения из исходной строки отдельных символов с последующим их преобразованием к целому.
n = input("Введите трехзначное число: ")
# Извлекается первый[0] символ строки,
# преобразуется к целому.
# Аналогично второй[1] и третий[2].
a = int(n[0])
b = int(n[1])
c = int(n[2])
print("Сумма цифр числа:", a + b + c)
Задача может быть усложнена тем, что число вводится не пользователем с клавиатуры, а должно быть сгенерировано случайно. Причем обязательно трехзначное число.
В этом случае надо воспользоваться функциями randint(), randrange() или random() из модуля random. Первым двум функциям передаются диапазоны: randint(100, 999), randrange(100, 1000). Получить трехзначное число, используя random() немного сложнее:
# Функция random генерирует
# случайное дробное число от 0 до 1
Достарыңызбен бөлісу: |