Как найти последнюю цифру трехзначного числа

Нужно вытащить первую и последнюю цифру из любого трехзначного числа на Python. Как это реализовать?

задан 7 ноя 2016 в 13:02

s3mpau's user avatar

4

Альтернативный алгоритм без приведения к строке:

value = 123

first_digit = value // 100
second_digit = value % 10

ответ дан 7 ноя 2016 в 13:55

Stranger6667's user avatar

Алгоритм решения задачи может выглядеть так:

  1. Сконвертировать число в строку.
  2. Получить первый символ строки и преобразовать его в число.
  3. Получить последний символ строки и преобразовать его в число.

В коде это может выглядеть так:

num = 123
s = str(num)

# Первая цифра
first_digit = int(s[0])
# Последняя цифра
last_digit = int(s[-1])

ответ дан 7 ноя 2016 в 13:44

Dmitriy Simushev's user avatar

Dmitriy SimushevDmitriy Simushev

17.7k5 золотых знаков47 серебряных знаков85 бронзовых знаков

2

Python56

0 / 0 / 0

Регистрация: 03.01.2017

Сообщений: 5

1

Вывести вначале последнюю цифру числа, потом среднюю

03.01.2017, 18:36. Показов 36714. Ответов 3

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

Python
1
2
3
4
n=abs(int(input()))
a=n%10
b=(n//10)%10
print(a,b)

Дано трехзначное целое число. Вывести вначале его последнюю цифру (единицы), а затем – его среднюю цифру (десятки).

Пример
Пример входных данных
307
520
100
Пример выходных данных
70
02
00

проблема ответ дается через пробел : 307 — 7 0 но долно быть 70



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

03.01.2017, 18:36

3

Semen-Semenich

4611 / 3148 / 1112

Регистрация: 21.03.2016

Сообщений: 7,838

03.01.2017, 19:34

2

Лучший ответ Сообщение было отмечено Python56 как решение

Решение

Python
1
2
3
4
n=abs(int(input()))
a=n%10
b=(n//10)%10
print(a,b, sep = '')



1



Jabbson

Эксперт по компьютерным сетям

5889 / 3347 / 1033

Регистрация: 03.11.2009

Сообщений: 9,975

03.01.2017, 20:46

3

или

Python
1
print(input()[-1:-3:-1])



1



0 / 0 / 0

Регистрация: 03.01.2017

Сообщений: 5

04.01.2017, 17:46

 [ТС]

4

спасибо



0



Для целых чисел все просто, как уже верно заметил Stalker_RED достаточно взять остаток от деления на 10n % 10
Но вот с дробными числами все намного интереснее. Потенциально, можно получить целое представление последовательно умножая число на 10 (сдвигая тем самым десятичную точку вправо), а после воспользоваться предыдущим приемом. Но проблема тут в том, что потенциально такая последовательность может оказаться бесконечной и такой алгоритм зациклится.
Если обратится к стандарту IEEE 754, то можно узнать, что в 64 битах можно точно представить не более 16 десятичных разрядов, а это уже можно использовать как ограничитель, так как при превышении 16 сдвигов десятичной точки значение все равно уже не будет точным

const lastDigit = n => {
    // в n совсем не то
    if (isNaN(n) || !isFinite(n)) return NaN;
    // в n целое
    if (n % 1 === 0) return n % 10;
    // для дробных проще со строкой работать
    const s = String(Math.abs(n));
    // неточные значения
    if (s.length > 16 || s.includes('e')) return NaN;
    return +s.slice(-1);
}

С тройкой связаны многие интересные закономерности.

Вот первые 9 степеней цифры 3.

3,

9, 27, 81, 243,

729, 2187, 6561, 19683…

Как вы можете заметить последние цифры этих чисел повторяются каждые четыре степени.

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

Если номер степени делится на 4 без остатка, то последней цифрой будет 1.

Если номер степени делится на 4 с остатком 1, то последней цифрой будет 3.

Если номер степени делится на 4 с остатком 2, то последней цифрой будет 9.

Если номер степени делится на 4 с остатком 3, то последней цифрой будет 7.

Делим 1976 на 4, получаем 494 ровно, значит последней цифрой в этом числе будет 1.

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

Рассмотрим программу получения цифр двузначного числа:

num = 17
a = num % 10
b = num // 10
print(a)
print(b)

Результатом выполнения программы будут два числа:

7
1

То есть сначала мы вывели последнюю цифру числа, а затем первую цифру.

Запомни: последняя цифра числа определяется всегда как остаток от деления числа на 10 (% 10). Чтобы отщепить последнюю цифру от числа, необходимо разделить его нацело на 10 (// 10).

Рассмотрим программу получения цифр трёхзначного числа:

num = 754
a = num % 10
b = (num % 100) // 10
c = num // 100
print(a)
print(b)
print(c)

Результатом выполнения программы будут три числа:

4
5
7

То есть сначала мы вывели последнюю цифру числа, затем среднюю цифру, а затем первую цифру.

Алгоритм получения цифр n-значного числа

Несложно понять, по какому алгоритму можно найти каждую цифру n-значного числа num:

  • Последняя цифра: (num % 101) // 100;
  • Предпоследняя цифра: (num % 102) // 101;
  • Предпредпоследняя цифра: (num % 103) // 102;
  • …..
  • Вторая цифра: (num % 10n-1) // 10n-2;
  • Первая цифра: (num % 10n) // 10n-1.

Решение задач

Задача 1. Напишите программу, определяющую число десятков и единиц в двузначном числе.

Решение. Число единиц – это последняя цифра числа, число десятков – первая цифра. Чтобы получить последнюю цифру любого числа, нужно найти остаток от деления числа на 10. Чтобы найти первую цифру двузначного числа, нужно поделить число нацело на 10. Программа, решающая поставленную задачу, может иметь следующий вид:

num = int(input())
last_digit = num % 10
first_digit = num // 10
print('Число десятков =', first_digit)
print('Число единиц =', last_digit)

Задача 2. Напишите программу, в которой рассчитывается сумма цифр двузначного числа.

Решение. Программа, решающая поставленную задачу, может иметь следующий вид:

num = int(input())
last_digit = num % 10
first_digit = num // 10
print('Сумма цифр =', last_digit + first_digit)

Задача 3. Напишите программу, которая печатает число, образованное при перестановке цифр двузначного числа.

Решение. Программа, решающая поставленную задачу, может иметь следующий вид:

num = int(input())
last_digit = num % 10
first_digit = num // 10
print('Искомое число =', last_digit * 10 + first_digit)

Задача 4. Напишите программу, в которую вводится трёхзначное число и которая выводит на экран его цифры (через запятую).

Решение. Программа, решающая поставленную задачу, может иметь следующий вид:

num = int(input())
digit3 = num % 10
digit2 = (num // 10) % 10
digit1 = num // 100
print(digit1, digit2, digit3, sep=',')

Понравилась статья? Поделить с друзьями:

Не пропустите также:

  • Как найти компанию для прохождения практики
  • Как найти ширину входной двери огэ
  • Как найти 200000 тысяч
  • Как найти скрытый дворец уван геншин
  • Как быстро найти окпд

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии