Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Pascal] Поменять первую и последнюю цифру в числе


Автор: VASILISKA 1.3.2007, 12:34
Задано число N. В нем поменять первую и последнюю цифру местами


 ! 
Kuvaldis

Давай писать общепринятыми строчными буквами... 

Автор: Kuvaldis 1.3.2007, 13:06
Код

program Project1;

{$APPTYPE CONSOLE}

var
  num : integer;
  last, first : integer;   
  base : integer;

begin
  writeln('Input number');
  readln(num);
  if (num < 0) then num := -num;   // получить число по модулю

  if (num <> 0) then
  begin
      last := num  mod 10;         // получаем младшую цифру
      first := num;
      base := 1;

      while (first > 9) do        // до первой цифры числа
      begin
          first := first div 10;
          base := base * 10;      // считаем степень разрядов
      end;

      num := num + base * (last - first) + (first - last);
      { пояснение: 123 = 123 + (3 - 1) * 100 + (1 - 3) = 321 }
  end;

  writeln('New number = ', num);
  readln;   
end.

Автор: FireSnake 1.3.2007, 13:39
Код

program ChangeNumber;
var s:string;
    ch:char;
begin
     readln(s);
     ch:=s[1];
     s[1]:=s[length(s)];
     s[Length(s)]:=ch;
     writeln(s);
end.

По-мойму мой код несколько короче;)

Автор: volvo877 1.3.2007, 13:45
Цитата(FireSnake @  1.3.2007,  12:39 Найти цитируемый пост)
По-мойму мой код несколько короче;)

Да, но он не соответствует условию:

Цитата(VASILISKA @  1.3.2007,  11:34 Найти цитируемый пост)
ЗАДАНО ЧИСЛО
, а работать с числами посредством ввода их в виде строки или перевода в строку - не то, что ждет преподаватель, не так ли?

Автор: Kuvaldis 1.3.2007, 13:46
FireSnake
Цитата

По-мойму мой код несколько короче;)

Автор, к сожалению, не сказал о способе хранения его числа.

Автор: FireSnake 1.3.2007, 13:54
Автор вообще не потрудился изъяснить задачу более конкретно...  А в принципе можно использовать процедуру str(что переводить, куда переводить). И вышло б тоже самое. А так мое решение удовлетворяет поставленному условию.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)