• Посчитайте количество десятичных натуральных чисел, не превосходящих 63, при записи которых в четверичной системе счисления результат будет заканчиваться на две одинаковые цифры —--- ответ 15... главное решение)) и подробное обьяснение, я слоупок в этом -_-

Ответы 1

  •  Суть алгоритма:

    0) счётчик  одинаковывых цифр   устанавливаем в с:=0; 

     

     1) Организуем цикл от 1 до 63 

     2) Каждое из этих чисел переводим в 4-ичную систему счисления 

    3) Переводим 4-ичное число в  строку.

    4) Если длина строки =2 символа то сравниваем второй и первый символ 

                          если равны то c:=c+1;

    5)  Если длина строки =3 символа то сравниваем второй и третий символ 

                          если равны то c:=c+1; 

    6) Печать результата 

     7) Выход

     

      Program Count;

     Uses Crt; var i,c,l:integer; s,s2:string;Function FromDec(n:string; radix: longint):string;var S:string; i,m:longint;const digit: string[36]='0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';beginm:=0; for i:=1 to length(n) do m:=m*10+(Ord(n[i])-48); S:='';repeat s:=digit[(m mod radix)+1]+s; m:=m div radix;until m=0;FromDec:=s;End;function IntToStr(I: Longint): String;var S: string[11];begin Str(I, S); IntToStr := S; end;

    {Основная программа}begin clrscr; c:=0; for i:=1 to 63 do begin s2:=IntToStr(i); s:=FromDec(s2,4); l:=length(s); if (l=2) then if (s[2]=s[1]) then c:=c+1; if (l=3) then if (s[l]=s[l-1]) then c:=c+1; end; writeln('Количество одинаковых:',c); readkey;end.

     

     

     

     

  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years