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


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


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

LOOP WHILE N&<>O

SUMDIG=RESULT

END FUNCTION

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

/* Суммирование десятичных цифр числа */

#include <stdlib.h>

int sum_digits(long N);

main()

}

long M;

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

scanf ("%ld", &M) ;

printf ("\n Сумма его цифр = %d", sum_digits (M) ) ;

getch ( ) ; }

int sum_digits (long N) {

int Result=0;

N=labs (N) ; /* Смена знака у отрицательного числа */

do {

Result=Result+N%10; /* Накопление суммы цифр */

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

while (N != 0) ;

return Result;

}

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

program sumdigits;

{ Суммирование десятичных цифр числа }

var

M:longint;

function sum_digits (N: longint) : integer;

const

Result : integer=0 ;

begin

if N<0 then N:=-N;

{ Смена знака у отрицательного числа } repeat

Result :=Result+N mod 10; { Накопление суммы цифр }

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

until N=0;

sum_digits : =Result;

end;

begin

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

readln (M) ;

writeln('Сумма его цифр =',sum_digits(M)! readln;

end.

Задание 2.07. "Счастливый" Сияет

Составить логическую функцию luck(n), аргументом которой является число п из диапазона [0, 999999]. Функция должна возвращать значение true (Паскаль) или i (Си, QBasic), если ее аргумент представлен "счастливым" числом, у которого суммы трех старших и трех младших цифр совпадают.

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

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

DECLARE FUNCTION LUCK(M AS LONG)

INPUT "Введите номер билета ";N& IF LUCK(N&)=1 THEN

PRINT "Радуйтесь - счастливый" ELSE

PRINT "Нет счастья в жизни" END IF END

FUNCTION LUCK(M AS LONG)

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

REM Если суммы совпадают LUCK=1

DIM A(6)

LUCK=0

IF M<0 OR M>999999 THEN

PRINT "luck : недопустимый аргумент":




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