Главная » Pascal, Исходники, Разное » Определение СС
Дек
10

Определение СС

Заданное десятичное число N и число M (массив цифр) в некоторой системе исчисления с основанием CC ( 1 < CC <= 10). Определить СС. [sourcecode highlight=»44″ language=»pascal»] uses Crt; var UnCC: String; Dec: Longint; CC: Byte; procedure GetCC_Comp_Dec(Dec: Longint; QCC: String; var Q: Byte); var i, j: Byte; Temp, Ctd: Longint; Max: Char; begin q:=0; Max:=QCC[1]; for i:=2 to Length(QCC) do if QCC[i] > Max then Max:=QCC[i]; if (Max <= ‘0’) or (Max > ‘9’) then Halt; j:=Ord(Max)-48; While (j < 10) and (q = 0) do begin Inc(j); Ctd:=0; for i:=1 to Length(QCC) do begin Temp:=Round(Exp((Length(QCC)-i)*Ln(j)))*(Ord(QCC[i])-48); Ctd:=Ctd+Temp; end; if Dec = Ctd then q:=j; end; end; begin ClrScr; Readln(Dec); Readln(UnCC); GetCC_comp_Dec(Dec, UnCC, CC); if CC <> 0 then Write(CC, ‘-CC’) else Write(‘ Данные введены неверно! ‘); end. { prepared special for www.kpeople.ru by AlexeyJava } [/sourcecode] Процедура GetCC_Comp_Dec сначала ищет максимальную цифру в заданном массиве цифр UnCC, чтобы было понятно от какой СС до какой нам дальше придется перебирать в поиске возможного варианта. В цикле мы перебираем все возможные варианты и сравниваем с Dec, если равно то нужная СС найдена и цикл прекращается, а если нет ищем дальше пока (j < 10). Полученное Q соответствено и будет нашим СС, причем если q = 0, то для введенного числа Dec несуществует СС от 2 до 10.



Понравилась статья? Сделай приятно ее автору, поделись с друзьями:


Хотите получать обновления данного блога на EMail?

Введите адрес Почтового Ящика:




Подтвердите подписку в письме пришедшем на Почту, после чего начнете получить рассылку.