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


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


#include <stdio.h>

#include <conio.h>

int palindrom(long N);

main () {

long M;

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

scanf("%ld",&M);

if (palindrom(M)) printf("\n Это - палиндром");

else printf("\пЭто - не палиндром");

getch(); }

int palindrom(long N)

{

/* Если N - палиндром, то palindrom = 1 */

int j,k=l;

char digit[10];

if(N<10) return 1; /* Одноразрядное - всегда палиндром */

for(j=0; j<10; j++)

{

/* цикл выделения десятичных цифр */

digit[j]=N%10;

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

if(N!=0) k++;

}

for(j=0; j<=k/2; j++) /* Цикл проверки симметрии цифр */

if(digit[j]!=digit[k-j-1]) return 0;

return 1;

}

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

program Palindroms;

{ Является ли введенное число палиндромом ? }

var

М: longint; function

palindrom(N:longint):boolean;

{ Если N - палиндром, то palindrom = true }

var

j,k:integer;

digit:array [0..9] of byte;

begin

palindr om: =t rue ;

if N<10 then exit; { Одноразрядное - всегда палиндром }

k:=0;

for j:=0 to 9 do { цикл выделения десятичных цифр }

begin

digit[j]:=N mod 10; { очередная цифра числа N }

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

if(N<>0) then k:=k+l; { счетчик цифр в числе N }

end;

for j:=1 to (k div 2) do { Цикл проверки симметрии цифр }

if digit[j]odigit[k-j] then palindrom:=false;

end;

begin

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

readln(M);

if palindrom(M) then

writeln('Это - палиндром') else

writeln('Это не палиндром');

readln;

end.

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

program Palindroms;

{ Является ли введенное число палиндромом? }

var

М: longint; const

noyes:array [false..true] of string=('не', '');

function palindrom(N:longint):boolean;

{ Если N - палиндром, то palindrom = true }

var

j,k:byte ;

s:string[16];

begin

palindrom:=true;

if N<10 then exit; { Одноразрядное - всегда палиндром }

str(N,s); { перевод числа в символьную строку }

k:=length(s) ;




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