Предмет: Информатика, автор: shusha10012

Ввести натуральное число, поменять в нем все цифры на следующую, а цифру 9 на 0. PascalABC
ввод 193
вывод 204


rustam1509: var n: integer;
m: array[1..99] of integer;

begin
read(n);
if n div 100 <> 9 then
m[1] := n div 100 + 1
else m[1] := 0;
if (n mod 100) div 10 <> 9 then
m[2] := (n mod 100) div 10 + 1
else m[2] := 0;
if n mod 10 <> 9 then
m[3] := n mod 10 + 1
else m[3] := 0;
write(m[1], m[2], m[3]);
end.
rustam1509: var n: Int64;
s: string;
m: array[1..99] of string;
p: array[1..99] of integer;

begin
read(n);
s := IntToStr(n);
for var i := 1 to s.Length do begin
m[i] := s[i];
end;
for var i := 1 to s.Length do begin
if StrToInt(m[i]) <> 9 then
p[i] := StrToInt(m[i]) + 1
else
p[i] := 0;
write(p[i]);
end;
end.
rustam1509: второй вариант правильный
eugene7870: зачем столько массивов? можно же просто обойтись числом n и строкой? да даже просто одной строкой
rustam1509: var m: string;

begin
read(m);
for var i := 1 to m.Length do
if m[i] <> '9' then
write(Succ(m[i]))
else
write('0');
end.
rustam1509: третий вариант првильный)

Ответы

Автор ответа: Аноним
1
// PascalABC.NET 3.3, сборка 1634 от 14.02.2018
// Внимание! Если программа не работает, обновите версию!

begin
  var n:=ReadInteger;
  var St:=new Stack<integer>;
  while n>0 do begin
    St.Push((n+1) mod 10);
    n:=n div 10
    end;
  St.Println('')
end.

Примеры
193
204

1234567890
2345678901

rustam1509: Вряд ли в 5-9 классах проходят нечто похожее, но все равно круто
rustam1509: Ок
Автор ответа: rustam1509
1
var m: string;
      p: array[1..99] of integer;
begin read(m);
   for var i := 1 to m.Length do begin
         if m[i] <> '9' then
              write(Succ(m[i]))
         else
              write('0');
   end;
end.

rustam1509: Даже короче вашей)
rustam1509: Надеюсь все это пригодиться на ЕГЭ
rustam1509: Хотя сомневаюсь
rustam1509: Да, спасибо
Похожие вопросы