вывести на экран все 4-значые числа, где в составе чила имеется 3 одинаковые цифры(1121, 1112,2111,1111) определите их количество.
заранее спасибо! и ещё...это очень срочно....
1) сначала надо перебрать все 4-х значные числа
var
n: integer;
begin
for n:=1000 to 9999 do
begin
{тут что-то делать с n-тым числом}
end;
end.
2) как-то надо определить что число содержит одинаковые цифры
ну тут сначала надо из числа извлечь его составляющие
для четырёх значного числа нужно поделить его на 10 три раза, т.е.
например для числа 2346 нужно сделать такое:
для четырёх значного числа нужно поделить его на 10 три раза, т.е.
например для числа 2346 нужно сделать такое:
2346 \ 10 = 234 и остаток - 6 - первая цифра
234 \ 10 = 23 и остаток 4 - вторая цифра
23 \ 10 = 2 и остаток 3 - третья цифра
2 - и есть наша четвёртая цифра
234 \ 10 = 23 и остаток 4 - вторая цифра
23 \ 10 = 2 и остаток 3 - третья цифра
2 - и есть наша четвёртая цифра
3) как-то нужно подсчитать сколько у нас каждой цифры
для этого используем счётчик для каждой цифры - счётчики будут храниться в массиве
var
counters: array [0..9] of integer;
i: integer;
counters: array [0..9] of integer;
i: integer;
begin
{перед использованием обнулим их}
for i:=0 to 9 do conters[i] := 0;
...
{перед использованием обнулим их}
for i:=0 to 9 do conters[i] := 0;
...
цифры полученые в результате предыдущих вычислений будут являться индексами в этом масиве
т.е. counters[2], counters[3], counters[4], counters[6]
т.е. counters[2], counters[3], counters[4], counters[6]
и при появлении каждой цифры мы увеличиваем соотв. счётчик - так counter[2] = counter[2] + 1;
3) теперь у нас есть кол-ва каждой цифры в данном числе, теперь выясним - есть ли значения хоть одного счётчика более или равное 3-м - тогда выводим число на экран
for i:=0 to 9 do
begin
if counters[i] >2 then writeln(...);
end;
4) ну и рабочую программу можно скачать по ссылке
Комментариев нет:
Отправить комментарий