Паскаль программа через процедуру - Компьютерные вопросы

Вопрос Паскаль программа через процедуру

Регистрация
10 Ноя 2013
Сообщения
90
Репутация
-3
Спасибо
0
Монет
0
Сделать с помощью процедуры Даны два пятизначных числа. Определить, состоят ли они из одних и тех
цифр. Например, для чисел 51354 и 55314 ответ положительный, для чисел
55555 и 55551 — отрицательный.
 
Регистрация
2 Янв 2013
Сообщения
85
Репутация
0
Спасибо
0
Монет
0
type TDigitCounter = array[0..9] of Integer; procedure InitCounter(var a: TDigitCounter); begin FillChar(a, SizeOf(a), #0); end; function CountDigits(n: Integer): TDigitCounter; var r: TDigitCounter; begin InitCounter(r); while n>0 do begin inc(r[n mod 10]); n:=n div 10; end; CountDigits:=r; end; function DigitCountsEqual(dc1, dc2: TDigitCounter): Boolean; var r: Boolean; i: Integer; begin r:=True; for i:=0 to 9 do r:=r and (dc1=dc2); DigitCountsEqual:=r; end; var n1, n2: Integer; begin Readln(n1); Readln(n2); Writeln(DigitCountsEqual(CountDigits(n1), CountDigits(n2))); Readln; end.
 
Регистрация
3 Янв 2013
Сообщения
83
Репутация
1
Спасибо
0
Монет
0
Два вложенных цикла И сравнение цифр чисел. Если хоть одна цифра в числах не совпала - возвращаем 0 Совпали все - 1. Как получить цифры числа, могу дать алгоритм на Си. Переводить в Паскаль лень Вот алгоритм и функция для нахождения суммы цифр любого n-значного целого числа: int count_digital(a) { int digit, suma = 0 ; a = ads(a) ; // рассматриваем только модуль числа while(a > 0) { digit = a % 10 ; остаток от деления на 10 и есть текущая цифра suma += digit ; // накапливаем сумму цифр числа a /= 10 ; переходим к следующему десятичному разряду числа } return(suma) ; }
 
Сверху Снизу