TransWikia.com

Нахождение цифр четырёхзначного числа

Stack Overflow на русском Asked on August 30, 2021

исходник мой неверен в чем моя ошибка?
Напишите программу для нахождения цифр четырёхзначного числа.

Формат входных данных
На вход программе подаётся положительное четырёхзначное целое число.

Формат выходных данных
Программа должна вывести текст в соответствии с условием задачи.

Sample Input 1:

3281

Sample Output 1:

Цифра в позиции тысяч равна 3
Цифра в позиции сотен равна 2
Цифра в позиции десятков равна 8
Цифра в позиции единиц равна 1

a = int(input())
n1 = a //100000
n2 = a //1000
n3 = a //100
n4 = a % 3280
print('Цифра в позиции тысяч равна', n3)
print('Цифра в позиции сотен равна', n2)
print('Цифра в позиции десятков равна', n3)
print('Цифра в позиции единиц равна', n4)

3 Answers

Не понятно зачем переводить в int строку ввода

a = input()
print('Цифра в позиции тысяч равна', a[0])
print('Цифра в позиции сотен равна', a[1])
print('Цифра в позиции десятков равна', a[2])
print('Цифра в позиции единиц равна', a[3])

это Вам для осмысления

a = input()
print(
    *[
        f'Цифра в позиции {p} равна {v}' for p, v in zip(
            [
                'тысяч', 
                'сотен', 
                'десятков', 
                'единиц'
            ],
            a
        )
    ], sep='n'
)

Correct answer by Namerek on August 30, 2021

/ - убрать число

% - оставить число


Первый способ

1024 / 10 ( убрать 1 число справа ) = 102

102 % 10 ( оставить 1 число справа ) = 2

Второй способ

1024 % 100 ( оставить 2 числа справа ) = 24

24 / 10 ( убрать 1 число справа ) = 2

2 / 10 ( убрать 1 число справа ) = 0


Это всё, что нужно знать для работы с цифрами числа.

Answered by Semitron on August 30, 2021

В python есть возможность из строки извлекать конкретный символ:

a=input("Введите число: ")
print('Цифра в позиции тысяч равна', a[1])
print('Цифра в позиции сотен равна', a[2])
print('Цифра в позиции десятков равна', a[3])
print('Цифра в позиции единиц равна', a[4])

Также хочу заметить, что эта функция a[i] принимает также и отрицательные значения, например:

a=1234
a[-1]=3 #2 символ с конца
a[0]=4  #1 символ с конца

И вообще ваши вычисления были не нужны, тем более они не верны. Если смотреть через числа то n1,n2,n3,n4 должны быть так вычислены:

a=int(a)
n1=a//1000
n2=(a//100)%10
n3=(a%100)//10
n4=a%10

print('Цифра в позиции тысяч равна', n1)
print('Цифра в позиции сотен равна', n2)
print('Цифра в позиции десятков равна', n3)
print('Цифра в позиции единиц равна', n4)

На всякий случай уточню, что знак "//" равносилен div, а "%" - mod.

Answered by Nezerix on August 30, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP