Дано шестизначное число. Переставить две средние цифры в начало числа. 123456 должно...

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

Дано шестизначное число. Переставить две средние цифры в начало числа. 123456 должно получится 341256 через паскаль


Информатика (63 баллов) | 53 просмотров
Дан 1 ответ
0 голосов

Поскольку математических расчетов не производится, будем работать со строковым (символьным) представлением данных. Это как если бы мы взяли шесть квадратиков бумаги, написали бы на каждом цифру 1, 2, ...6, и составили бы из этих кусочков цепочку 1-2-3-4-5-6 . А потом сделали бы нужные перестановки.

var
  s:string;
begin
  Write('Введите натуральное шестизначное число: '); Readln(s);
  Writeln('Перестановка: ',s[3]+s[4]+s[1]+s[2]+s[5]+s[6])
end.

Тестовое решение:
Введите натуральное шестизначное число: 123456
Перестановка: 341256

(142k баллов)
0

var x, i: integer;
begin
writeln('Введите шестизначное число: ');
readln(x);
i := x mod 10000;
writeln( i div 100 );
writeln( x div 10000 );
writeln( x mod 100 );
end.

0

И? Считаете, что Ваше решение проще? Начнем с ого, что оно вообще неработоспособно в таком виде: в типе integer максимальное значение не может превышать 32767 - Вы как собираетесь шестизначное число вводить? Ваши Writeln() будут выводить части числа на разных строках.

0

В общем, я понял: вместо "спасибо" мне написали кривое решение, типа, "вот, смотри как надо!" )))) К тому же, даже будучи исправленным, оно более длинное и более сложное для понимания. Поздравляю!