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


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


EXIT FUNCTION

END IF

FOR i=0 TO 5

A(I)=M MOD 10 : ' Выделение очередной цифры

M=(M-A(I))/10 : ' Удаление обработанной цифры

NEXT I

IF (A(0)+A(1)+A(2)=A(3)+A(4)+A(5)) THEN LUCK=1

END FUNCTION

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

/* Анализ "счастливого" билета */

#include <stdio.h>

int luck(long M);

main() {

long N;

printf("\n Введите номер билета ");

scanf("%ld",&N);

if (luck(N)==l)

printf("\n Радуйтесь - счастливый");

else

printf("\n Нет счастья в жизни"); getch(); }

int luck(long M)

/* Подсчет и сравнение сумм старших и младших цифр М

Если суммы совпадают luck=l*/ {

int i ; char a[6];

if((M<0) || (M>999999)) {

printf("\nluck : недопустимый аргумент");

exit(0); }

for(i=0; i<6;.i++) {

a[i]=M % 10; /* Вьщеление очередной цифры */

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

}

if(a[0]+a[l]+a[2]=a[3]+a[4]+a[5]> return 1;

return 0; }

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

program lucky_ticket;

{ Анализ "счастливого" билета

var

N:longint;

function luck(M:longint):boolean;

{ Подсчет и сравнение сумм старших и младших цифр М

Если суммы совпадают luck=true }

var

i:integer;

a:array [1..6] of byte;

begin

if (M<0) or (M>999999) then begin

writeln('luck : недопустимый аргумент');

exit;

end;

for i:=l to 6 do

begin

a[i]:=M mod 10; { Выделение очередной цифры }

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

end;

luck:=(a[l]+a[2]+a[3])=(а[4]+а[5]+а[6]);

end;

begin

writeln('Введите номер билета');

readln(N);

if luck(N) then

writeln('Радуйтесь - счастливый') else

writelnt'HeT счастья в жизни');

readln;

end.

Задание 2.08. Количество различных цифр в десятичном числе

Составить функцию num_digits (n), аргументом которой является длинное целое число. Возвращаемое значение должно быть равно количеству различных цифр в десятичной записи п. Например: num_digits (1998) =3.

Совет 1 (общий)

Предлагается завести массив из 10 счетчиков, каждый из которых будет подсчитывать количество своих цифр — первый счетчик считает нули, второй —




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