Вы не должны использовать ни один.
Вы должны использовать
#include
...
int main()
{
...
std::cin.ignore(); //why read something if you need to ignore it? :)
}'
Просто создайте из него строку.
myinteger = 212345
number_string = str(myinteger)
Этого достаточно. Теперь вы можете перебирать его:
for ch in number_string:
print ch # will print each digit in order
Или вы можете разрезать его:
print number_string[:2] # first two digits
print number_string[-3:] # last three digits
print number_string[3] # forth digit
Или, лучше, не преобразовывайте ввод пользователя в целое число (пользователь вводит строку)
isbn = raw_input()
for pos, ch in enumerate(reversed(isbn)):
print "%d * %d is %d" % pos + 2, int(ch), int(ch) * (pos + 2)
Для получения дополнительной информации прочтите учебник .
list_of_ints = [int(i) for i in str(ISBN)]
даст вам упорядоченный список ints. Конечно, учитывая утиный ввод, вы также можете работать с str (ISBN).
Изменить: Как упоминалось в комментариях, этот список не отсортирован по возрастанию или убыванию, но он имеет определенный порядок (наборы, словари и т. д. в python теоретически этого не делают, хотя на практике порядок, как правило, довольно надежен). Если вы хотите отсортировать его:
list_of_ints.sort ()
- ваш друг. Обратите внимание, что sort () выполняет сортировку на месте (например, фактически изменяет порядок существующего списка) и не возвращает новый список.
while number:
digit = number % 10
# do whatever with digit
# remove last digit from number (as integer)
number //= 10
На каждой итерации цикла он удаляет последнюю цифру из номера, присваивая ей цифру
.
Это наоборот, начинается с последней цифры, заканчивается первой