Помогите написать программу ** паскале, используя циклы!!! Найти количество различных...

0 голосов
82 просмотров

Помогите написать программу на паскале, используя циклы!!!

Найти количество различных цифр данного натурального числа.


Информатика (464 баллов) | 82 просмотров
0

Какая версия Паскаля?

0

И, заодно, есть ли ограничение на количество цифр в числе?

0

Достаточно просто для программирования, но, быть может, не совсем просто для школьника.

0

а в коде это как должно выглядеть?

0

любое натуральное, которое душеньке угодно

0

Не проблема... тогда вводим строку и учитываем цифры до появления первого нецифрового символа...

0

Т.е. можно и 1000 знаков в числе ввести?

0

Pascal ABC.NET . ограничения нет.

Дано ответов: 2
0 голосов
Правильный ответ

// PascalABC.NET 3.1, сборка 1218 от 12.04.2016
begin
  var s:=RegEx.Match(ReadlnString('Число:'),'\d*');
  Println('Принято число',s);
  Println('Разных цифр',s.ToString.Distinct.Count)
end.

Тестовое решение:
Число: 32647034554934932reert54654643#$%
Принято число 32647034554934932
Разных цифр 8

(142k баллов)
0 голосов

//Pascal ABC.NET v3.1 сборка 1172

Var
 k:integer;
 se:set of char;
 s:string;
 num:set of '0'..'9';
begin
readln(s);
 num:=['0'..'9'];
 while s<>'' do
  begin
   if (not(s[length(s)] in se)) and (s[length(s)] in num) then
    begin
     inc(k);
     se:=se+[s[length(s)]];
    end;
   delete(s,length(s),1);
  end;
 writeln(k);
end.

Пример ввода:
234Мне нужно делать историю, что я тут забыл?121
Пример вывода:
4

(38.6k баллов)
0

Тапок кинул автор вопроса: "любое натуральное, которое душеньке угодно" )))

0

Вы ничего не написали в условии задания про if и циклы, поэтому не вправе теперь чего-то в этом плане требовать.

0

проблема в том, что использовать должны мы циклы и if

0

Очень долгий метод, но так как моя голова занята холодной войной, ничего умнее в неё не приходит.

0

Я сначала попытался скормить строку в BigInteger, но программа сковырнулась по первому же нецифровому символу.

0

Да, вот так с виду простейшая задача начинает разбухать...

0

Ладно, тогда строки. Минуту.

0

Поправил. Можете продолжать кидаться тапками.

0

Да....вот как тут реализуется проверка на то. что числа различные - это непонятно...

0

While, if, всё на месте. Если хотите огромные числа в тысячи цифр, то Вам нужны строки.