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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.03.2008, 22:36   #1
Elm0
ObjectPascal,CISCO
Форумчанин
 
Регистрация: 22.05.2007
Сообщений: 294
По умолчанию удаление цифры из числа

Здравствуйте!
Подскажите плз (можно словесный алгоритм)как получить все возможные варианты числа если удалять из него одну десятичную цифру
Elm0 вне форума Ответить с цитированием
Старый 14.03.2008, 23:59   #2
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Предложу такой извращенный вариант. Число представляем строкой.
Создаем "клоны" этой строки в массиве по количеству цифр в числе.
В цикле удаляем последовательно по одной цифре из каждого клона и выводим на экран.
Вот это творение.
Код:
uses crt;
var n:string;  //число
    i:integer;
    s:array[1..20]of string;  //"клоны"
begin
clrscr;
write('n=');readln(n);
for i:=1 to length(n) do
s[i]:=n;  //создаем "клоны"
for i:=1 to length(n)do
   begin
     delete(s[i],i,1);//удаляем одну цифру
     writeln(s[i]);    //выводим на экран
   end;
readln
end.
puporev вне форума Ответить с цитированием
Старый 15.03.2008, 01:51   #3
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Код:
var
    Number              : cardinal;
    NewNumber           : cardinal;
    PositionToDelete    : byte;
    CurrentPosition     : byte;
    tmp                 : byte;
    order               : cardinal;
begin
    write('Number = '); readln(Number);
    write('Delete at position: '); readln(PositionToDelete);
    writeln;

    writeln('Old: ', Number);
    CurrentPosition := 0;
    NewNumber := 0;
    order := 1;

    while Number > 0 do begin
        tmp := Number mod 10;
        Number := Number div 10;
        if CurrentPosition <> PositionToDelete then begin
            NewNumber := NewNumber + tmp * order;
            order := order * 10;
        end;
        CurrentPosition := CurrentPosition + 1;
    end;

    writeln('New: ', NewNumber);
    readln;
end.
B_N вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Римские цифры Sergeevich Помощь студентам 2 26.05.2008 18:21
Элементы массива и старшие цифры logistics Помощь студентам 4 22.04.2008 00:12
ДАНЫ 4 ЧИСЛА X Y Z W составит программу найти произведение все положительные нечетные числа Woland-itn Паскаль, Turbo Pascal, PascalABC.NET 3 23.03.2008 21:49
Найти ненулевые цифры kommunist Помощь студентам 2 25.11.2007 11:16
Перевёрнутые цифры BETONOMESHALKA Общие вопросы Delphi 2 04.11.2007 15:22