Практика программирования (Бейсик, Си, Паскаль)


Задачи,советы и ответы - часть 28


RЕМ Перестановка старших и младших разрядов в числе

DECLARE FUNCTION invert!(N&)

CLS

INPUT "Введите целое число : ",М&

PRINT "Справа налево оно выглядит так ";invert(MS)

END

FUNCTION invert(N&)

Res&=0: sign=SGN(N&) : ' Учет знака числа

IF N&<0 THEN N&=-N& '

DO

k%=(N& MOD 10) : ' очередная цифра справа

Res&=Res&*10+k% : ' формирование перевернутого результата

N&=(Ns-k%)/10 : ' удаление обработанной цифры

LOOP UNTIL N&=0

invert=Res&*sign : ' приклеили знак

END FUNCTION

Программа 2_16.с

/* Перестановка старших и младших разрядов в числе */

#include <stdlib.h>

long invert(long N);

main()

{

' long M;

printf("\nВведите целое число : ");

scanf("%ld",&M);

printf("\nСправа налево оно выглядит так %ld",invert(M));

getch();

}

long invert(long N) {/* инвертирование числа */

long Result=0, sign=l;

/* Учет знака числа */

if(N<0)

{ N=-N; sign=-l;}

while (N!=0) {

Result=Result*10 + (N % 10);

/* формирование результата */

N=N/10;

/* удаление обработанной цифры */

}

return Result*sign; /* приклеили знак */ }

Программа 2._16.pas

program rotate;

{ Перестановка старших и младших разрядов в числе }

var

N:longint;

function invert(N:longint):longint; const

Result:longint=0; sign:shortint=l;

begin

if N<0 then { Учет знака числа }

begin N:=-N;

sign:=-l;

end;

while (N<>0) do begin

Result:=Result*10+(N mod 10);{ формирование результата }

N:=N div 10; { удаление обработанной цифры }

end;

invert:=Result*sign; { приклеили знак }

end;

begin

write('Введите целое число : ');

readln(N);

writeln('Справа налево оно выглядит так : ',invert(N));

readln;

end.

Задание 2.17. Числовые палиндромы

Натуральное число N = a1a2... ak называют палиндромом, если его величина совпадает со значением, прочитанным справа налево, NI ak...a2a1. При этом предполагается, что a1> о. Например, 1881 — палиндром, а 1812 — нет. Составить функцию paiindrom(n), аргументом которой является длинное положительное целое число. Функция должна возвращать значение true (Паскаль) или 1 (QBasic, Си), если ее аргумент является числовым палиндромом.




- Начало -  - Назад -  - Вперед -