Разбить число на цифры
Ну можно немножко посидеть и такое запилить, но задача была четкая, 3хзначное число, разложить на 3 отдельных, задача выполнена, выдумывать что-то не собираюсь. Завтра может попробую.
Вот, на любое целое или дробное, отрицательное или неотрицательное число
// Разбиение числа на цифры
#include #include using std::cout; using std::cin; using std::endl; using std::ends; using std::string; bool check4(string x) // проверка на пропущенный ноль в начале дробного числа < if ((static_cast(x[0]) == 44) // если знак "," первый, ИЛИ || (static_cast(x[0]) == 46) // если знак "." первый, ИЛИ || ((static_cast(x[0]) == 43 || static_cast(x[0]) == 45) // если "+" ИЛИ "-" первый знак, И && (static_cast(x[1]) == 44) || (static_cast(x[1]) == 46))) // "." ИЛИ "," второй знак < return true; // если обнаружена точка-запятая без предшествующей цифры, то истина, что ноль пропущен. >else return false; > bool check3(string x) // проверка количества точек-запятых в дробном числе < unsigned int count = 0; for (int i = 0; x[i]; i++) < if (static_cast(x[i]) == 44 // знак "," || static_cast(x[i]) == 46) // знак "." < count++; >> if (count > 1) // если в числе больше одной точки-запятой, то ошибка return false; else return true; > bool check2(string x) // Проверка корректности остальных знаков < for (int i = 1; x[i]; i++) if (!(static_cast(x[i]) == 44 // знак "," || static_cast(x[i]) == 46 // знак "." || (static_cast(x[i]) >= 48 // цифры && static_cast(x[i]) return true; > bool check1(string x) // Проверка корректности первого знака < if ((static_cast(x[0]) >= 43 // знаки "+" "-" "." "," && static_cast(x[0]) <= 46) || (static_cast(x[0]) >= 48 // цифры && static_cast(x[0]) else return false; // если обнаружен знак - не цифра, не плюс-минус и не точка-запятая, то ошибка > void frag(string x) < cout << "Ваше число состоит из цифр: "; if(check4(x)) // проверка на пропущенный ноль перед дробью cout << "0" << ends; // если пропущен, печатаем ноль for (int i = 0; x[i]; i++) < if (static_cast(x[i]) >= 48 // печатаем только цифры && static_cast(x[i]) > > int main() < setlocale(LC_CTYPE, ".1251"); string x; while (true) < cout >
Slonopotam, ты решал задачу, исходя из некорректно понятого условия. Изначально было написано: Помогите разбить 3 значное число на цифры. Число! Т.е. предполагается, что число существует уже в виде экземпляра числового типа (int, double и родственные типы), а не в виде строки символов.
(1) Не стоит хардкодить коды цифр и знаков. Например:
= 48 // цифры && static_cast(x[0])
в другой кодовой таблице этим кодам могут соответствовать совсем другие символы. Более переносимый вариант:
= '0' && x[0]
(Полностью переносимый вариант — это сравнение с каждой из цифр в отдельности, поскольку теоретически возможны кодовые таблицы, в которых цифры не идут единым блоком. Но я с такой экзотикой не встречался. А вот с буквами национальных алфавитов такое встречается очень часто.)
(2) С десятичным разделителем всё ещё веселее. Правильным было бы запрашивать у операционной системы какой символ используется для десятичного разделителя в локали, действующей в момент запуска программы.
(3) В программе не учитывается возможность ввода чисел в «научной» форме. Например, .758e2 — это 75.8 . Подробности см. в википедии.
Так что в плане универсальности твоего решения ты немного погорячился.
Но попытка засчитывается. +1 к карме ))
Разбить число на составляющие
На вход функцией input подается 6-значеное число. Нужно разбить его на на отдельные числа. Например: 123456 -> 1 2 3 4 5 6. Делается это для того, чтобы проверить эквивалентность суммы первой и второй тройки чисел (Задача о счастливом билете). В программировании я начинающий и желательно всё сделать операциями div, mod, if-else
a = int(input()) b = a//1000 one = b//100 two = b%11 three = b%10 c = a%1000 four = c//100 five = c%11 six = c%10 if (one+two+three)==(four+five+six): print ('Счастливый') else: print ('Обычный')
Отслеживать
48.7k 17 17 золотых знаков 56 56 серебряных знаков 100 100 бронзовых знаков
задан 25 мар 2016 в 4:17
175 2 2 золотых знака 2 2 серебряных знака 9 9 бронзовых знаков
9 ответов 9
Сортировка: Сброс на вариант по умолчанию
Можно, конечно, честно посчитать остатки от деления и т.д., но проще всего разбить на символы строку, а потом перевести эти символы обратно в числа. Делается это во второй строке следующей программы:
a = 123456 b = map(int, str(a)) print b if len(b)==6: print "Happy" if b[0] + b[1] + b[2] == b[3] + b[4] + b[5] else "Unhappy"
Если очень хочется честным образом делить на 10, то можно вторую строку этой программы заменить на такой фрагмент:
b = [] while a > 0: b.append(a % 10) a = a // 10 b = b[::-1] # так можно развернуть, если бы нам был важен порядок print b
Теперь по тексту Вашей программы: почему-то берётся остаток от деления на 11 (в строках two = b%11 и five = c%11 , хотя правильно было бы поделить на 10, а потом взять остаток от деления на 10 ( two = (b // 10) % 10 ). Вам надо разобраться, откуда взялось 11, так как это очень странный код.
Дополнение:
Если нам важно поддержать случаи входных значений a менее, чем шестизначных, то можно поменять всего одну строчку:
while len(b) < 6: # теперь в b заведомо будет 6 элементов
Также рекомендую изучить код из соседнего ответа (от jfs), так как в нём есть ряд интересных моментов.
Как разделить число на цифры в python?
Здравствуйте! Кто-нибудь может подсказать, как можно сделать так, чтобы, допустим, в числе 135 сложить крайние цифры т.е. 1 и 5?
- Вопрос задан более трёх лет назад
- 1588 просмотров
5 комментариев
Простой 5 комментариев
Да проще простого брат:
digits = [] integer = 135 while integer: digits.append(integer % 10) integer /= 10 result = digits[0] + digits[-1]
Можно, конечно, через строку всё это сделать, но препод "неуд" поставит за такое.
Разбить число на цифры

Напишите программу, которая вводит трёхзначное число и разбивает его на цифры. Например, при вводе числа 123 программа должна вывести «1 2 3».
Входные данные
Входная строка содержит одно трёхзначное число.
Выходные данные
Программа должна вывести три цифры переданного ей числа, начиная с первой, разделённые пробелами.
Примеры
входные данные
123
выходные данные
1 2 3
Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Разбить число на цифры
Пользователь вводит строку, состоящую из цифр, разделенных пробелами. Разбить строку на отдельные.

Разбить число на цифры
Помогите пожалуйста придумать код, который будет разбивать число. Например я вожу 1234, а вывод.
Разбить огромное число на цифры и сложить текст
Привет, нужна помощь, есть огромное число, допустим 411991215144118514115 и надо его разбить на.
Разбить строку на отдельные цифры
Пользователь вводит строку, состоящую из цифр, разделенных пробелами. Разбить строку на отдельные.
![]()
2684 / 1590 / 512
Регистрация: 21.02.2017
Сообщений: 4,207
Записей в блоге: 1

Сообщение было отмечено golz29 как решение
Решение
print(*input())
![]()
![]()
35997 / 20112 / 4196
Регистрация: 12.02.2012
Сообщений: 33,305
Записей в блоге: 13
Fudthhh, у Вас нет числа.
2424 / 1466 / 633
Регистрация: 01.11.2021
Сообщений: 2,269
1 2 3 4
a = int(input()[::-1]) while a: print(a % 10, end=' ') a //= 10
Добавлено через 46 секунд
С нулями такое не прокатит.
Добавлено через 1 минуту
1 2 3 4 5 6
a = int(input()) r = [] while a: r.append(a % 10) a //= 10 print(*reversed(r))
Am I evil? Yes, I am!
![]()
![]()
17052 / 9999 / 2763
Регистрация: 21.10.2017
Сообщений: 21,960
Сообщение от Catstail 
у Вас нет числа
x = int(input()) print(*f'')
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Найдите двузначное число, равное сумме цифры его десятков и квадрата цифры единиц
2. Найдите двузначное число, равное сумме цифры его десятков и квадрата цифры единиц.
Ввести число n, разбить число на цифры, и найти сумму этих цифр
Здравствуйте.Очень нужно сделать задание, кто может? Заранее спасибо. Ввести число n, разбить.
Пользователь вводит с клавиатуры трехзначное число. Разбить число на цифры, вывести их на экран,
посчитать их сумму, произведение и среднее арифметическое (важно: выполнить с использованием цикла)

Разбить число на цифры
Прошу прощения за мой глупый вопрос. но с Си Билдером я ваще новичек. так вот подскажите как.

Разбить число n на цифры
Составьте программу без использования строковых переменных, которая разбивает число n на цифры и.
Разбить число на цифры.
как в паскале разбить число на цифры.
Или воспользуйтесь поиском по форуму: