Строка из натуральных чисел (2) - QBasic

Узнай цену своей работы

Формулировка задачи:

Дана строка, построенная из последовательных натуральных чисел от 1 до 4027. (12345678910111213141516171819 ... 4027) Требуется вычислить длину новой строки, выкидывая из исходной все повторяющиеся подряд цифры. Пример. Строка 1333344477778. Новая строка 13478 (ответ 5) Эта программа сосчитала, что новая строка будет иметь длину 13497 цифр. Так ли это? (я тоже могу ошибаться)

Решение задачи: «Строка из натуральных чисел (2)»

textual
Листинг программы
uses sysutils;
 
var
  s : string;
  i, j, len : integer;
  ch : char;
 
begin
  ch := #0;
  for i := 1 to 4027 do
  begin
    s := inttostr(i);
    for j := 1 to length(s) do
      if s[j] <> ch then
      begin
        ch := s[j];
        inc(len);
      end;
  end;
  writeln(len);
end.

Объяснение кода листинга программы

В этом коде используется язык программирования QBasic. Цель программы - найти наибольшую возможную длину строки, состоящей только из возрастающих чисел. В начале кода объявляются следующие переменные:

  1. s - строковая переменная, в которой будет храниться строка из чисел.
  2. i, j, len - целочисленные переменные, используемые для контроля цикла и подсчета длины строки.
  3. ch - символ, инициализированный нулевым символом. Затем следует цикл, который выполняется 4027 раз (это неслучайное число, оно используется для создания строки из всех натуральных чисел от 1 до 4026). Внутри цикла сначала переменная s преобразуется в строку текущего числа. Затем идет цикл по всем символам строки s. Если текущий символ не равен символу ch, то он становится новым значением ch, и переменная len увеличивается на 1. После завершения всех внутренних циклов, выводится значение переменной len - это и есть наибольшая возможная длина строки из возрастающих чисел. Важно отметить, что этот код не генерирует строку из чисел, он лишь находит длину такой строки. Если вам нужна сама строка, вы можете модифицировать код, добавив дополнительный цикл, который будет добавлять символы к переменной s.

Оцени полезность:

12   голосов , оценка 4.417 из 5
Похожие ответы