Помощь - Поиск - Пользователи - Календарь
Полная версия: Задача с mod и div
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Strip
???Помогите решить задачу! Пожалуйста!!!
Вводится натуральное число N. Определить номер минимальной цифры этого числа
oleg309
Получи остаток используя mod 10
fms
2oleg309
оригинально объяснил..  ;D как будто после этой строчки ему стало намного понятней..  :-/

PS^поковыряйся по форуму.. тут много задач на выделение цифр из числа было.. ну а определить минимальное и потом его номер наверно будет не оч. сложно..
oleg309
Вот пример программы которая отсекает последнюю цифру числа и выводи на экран (в твоём случае это не надо но для примера пойдёт):
Код
While A>0 do
begin
B:=a mod 10;
Dec(A,B);
A:=A div 10;
Writeln('B');
End.

Теперь просто необходимо сравнить эти числа и определить его номер (или разряд?)
fms
я так понимаю номер цифры в числе..)) просто в эту штуку еще счетчик вставить..
oleg309
А может использовать FOR...? И с какой стороны считаь с лева на прово или наоборот, поэтому наверно лучше выводить не номер , а разряд?
fms
как ты фор использовать хочешь?! ты ведь не знаешь сколько цифр в числе..
если делить то естественно получится справа налево. потом счетч. подсч. кол-во цифр и запомнит номер с минимальн. и потом из общ. кол-ва вычесть номер с минимальной цифрой и прибавить 1..) вот и будет настоящий номер мин. цифры.
oleg309
Lim = High(LongInt);      For i:=1 to Lim do.....!!!!!   >:(
trminator
Код

var n: integer;
   i, min, minn, ost : shortint;
begin
   readLn(n); min:=10; i:=0;
   while n > 0 do
   begin inc(i);
       ost:=n mod 10; n:=n div 10;
       if ost < min then begin
                             min:=ost; minn:=i
                         end;
   end;

   writeLn(minn,'-тый разряд минимальный. Он равен ', min);
end.

Цитата
ты ведь не знаешь сколько цифр в числе

при желании можно взять десятичный логарифм - это и будет кол-во цифр - 1. Но это уже извращение.

Цитата
While A>0 do
begin
B:=a mod 10;
Dec(A,B);
A:=A div 10;
Writeln(B);
End.

dec(a, B) здесь явно лишнее. Зачем это делать если все равно потом отбрасываешь последнюю цифру
fms
;D

в общем Стрип если захочет, то допишет что ему надо.. поковыряется по форуму и сделает.. smile.gif
trminator
Что тут дописывать - вроде у меня прога рабочая... или на худой конец почти рабочая

Цитата
Lim = High(LongInt); For i:=1 to Lim do.....!!!!!

Зачем делать цикл на два миллиарда итераций? (все-все, молчу, последний наезд smile.gif )
oleg309
Цитата
;D

в общем Стрип если захочет, то допишет что ему надо.. поковыряется по форуму и сделает.. smile.gif


А оно ему надо? Чё-то у него никаких вопросов не возникает, или мы тут зря рамсим?! ;)
trminator
Все, уже флуд пошел!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.