Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.12.2009, 21:46   #1
neo-210
Пользователь
 
Регистрация: 09.01.2009
Сообщений: 21
По умолчанию Как разложить число на цифры ( задача )

Всем привет. Я интересуюсь как например разложить число 153 -> на 1 5 3 по отдельности программным спопособм. Тоесть получить цифры из которых состоит число.

Меня интересует только сам математический алгоритм, но можно и пример на C or Pascal.

Вариант типо записать в строку, а потом выделить числа не принимается я ищу математический метод, который пока не могу придумать.
neo-210 вне форума Ответить с цитированием
Старый 10.12.2009, 21:55   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

x mod 10 - вернёт последнюю цифру числа x
потом сдвигаем число, разделив его целочисленно на 10:
x := x div 10
повторяем, пока x > 0
Serge_Bliznykov вне форума Ответить с цитированием
Старый 10.12.2009, 21:56   #3
SNUPY
Форумчанин
 
Регистрация: 15.02.2008
Сообщений: 621
По умолчанию

Два способа получения отдельной цифры:
1. (не помню на паскале это актуально или нет =\) Нуу в общем переведи в строку число и дергай по символу =))), т.е. это так как наш мозг работает =)))
2. для получения i-ой цифры (m) в числе n:
m=(n mod (10 ^(i))) div (10 ^ (i-1))

Помоему так =)))
Помог? Ну так нажми на весы!
SNUPY вне форума Ответить с цитированием
Старый 10.12.2009, 22:17   #4
neo-210
Пользователь
 
Регистрация: 09.01.2009
Сообщений: 21
По умолчанию

Спасибо попробуемс.
neo-210 вне форума Ответить с цитированием
Старый 11.12.2009, 00:37   #5
Alex_FF
Удален
Форумчанин
 
Регистрация: 02.12.2009
Сообщений: 309
По умолчанию

Код:
var
  X, Digit: Integer;
begin
  ReadLn(X);
  while X <> 0 do
  begin
    Digit := X mod 10;
    { обрабатываешь цифру Digit}
    X := X div 10;
  end;
end.

Последний раз редактировалось Alex_FF; 11.12.2009 в 00:40.
Alex_FF вне форума Ответить с цитированием
Старый 11.12.2009, 21:57   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

alex
лучше, всё же так:
Код:
var
  X, Digit: Integer;
begin
  ReadLn(X);
  repeat 
    Digit := X mod 10;
    { обрабатываешь цифру Digit}
    X := X div 10;
  until X = 0;
end.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 11.12.2009, 22:37   #7
Alex_FF
Удален
Форумчанин
 
Регистрация: 02.12.2009
Сообщений: 309
Смех

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
alex
лучше, всё же так:
Код:
var
  X, Digit: Integer;
begin
  ReadLn(X);
  repeat 
    Digit := X mod 10;
    { обрабатываешь цифру Digit}
    X := X div 10;
  until X = 0;
end.
Ну да, про ноль я забыл
Alex_FF вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разложить число на цифры Dog Помощь студентам 10 09.05.2011 12:16
Как разбить число на цифрыКак разбить число на цифры: 3241 => 3,2,4,1 (Pascal) Banderas123 Помощь студентам 3 07.12.2009 18:26
как разбить n-значное число на составляющие его цифры? _Toretto_ Общие вопросы C/C++ 4 04.12.2009 19:33
Как разделить введённое n значное число на отдельны цифры? mig-29 Общие вопросы C/C++ 5 22.05.2009 16:30
Как разделить введённое n значное число на отдельны цифры? mig-29 Помощь студентам 13 04.04.2008 20:01