Составите программу нахождения остатка от деления тысячезначногочисла на 18

Составите программу нахождения остатка от деления тысячезначногочисла на 18
Гость
Ответ(ы) на вопрос:
Гость
function BigNum(n: integer): string; {Генератор случайного числа из n цифр} var   c, s: string;   i, k: integer; begin   Randomize;   k := Random(9) + 1;   Str(k, c);   s := c;   for i := 1 to n - 1 do   begin     k := Random(10);     Str(k, c);     s := s + c   end;   BigNum := s end; function SumDig(s: string): integer; {Сумма цифр в числе} var   i, n, sum, err: integer; begin   sum := 0;   for i := 1 to length(s) do   begin     Val(s[i], n, err);     sum := sum + n   end;   SumDig := sum end; function Residue(s: string): integer; {Возвращает остаток от деления числа в s на 18} var   n, sd, res9, res2, err: integer;   odd1, odd2: Boolean; begin   sd := SumDig(s);   res9 := sd mod 9;   Val(s[length(s)], n, err);   res2 := n mod 2;   odd1 := (res9 mod 2) <> 0;   odd2 := (res2 <> 0);   if (odd1 and not odd2) or (not odd1 and odd2) then Residue := res9 + 9   else Residue := res9 end; var   c: string; begin   c := BigNum(1000);   writeln(c,#13#10,'Остаток от деления на 18 равен ', Residue(c)) end. Тестовое решение: 3221915424975322923399502460812524529225375712837996380372955560234189270702379062282513315737071547764862568890398237871186353362182139742995552543884367658741829560716949497663481958872557099007598172783497999536087178826984948006420926538455756301942035589845898211516063937013863606448533769355643489588909747508128286297239467146038312854988616013646629224854150056080633230962334349031818700972765003200339826241970102416293235810632014869208245809165359601700391661996623220804842575428230306880758380343212880696782613365631634904645222111534961009813502561157888605055040272066063419013375096375636695376322940418437858178995380732947703268032557794787741637094210757062359003544768695429616517382280063142873709333561422845574162136379545354590728371075722857860156305301616725485589016055779858443331207045899737128103925063276738104327107115503162033931614476906153279190680955900379416370372010844088284335066847563774690881756900181208508120442555717049830267806565535426556043820118314 Остаток от деления на 18 равен 2
Не нашли ответ?
Ответить на вопрос
Похожие вопросы