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)
Не понятно зачем переводить в 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
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP