Запишем представление восьмеричного числа в двоичной системе, группируя двоичные разряда по три (два в третьей степени равно 8)
111 100 000 000(2) = 7400(8).
Обработки информации наверное.
11100
решение просто на глаз:
1 это - 1
10 это 2
100 это 4
1000 это 8
10000 это 16
так как 4+8+16 = 28
то мы и берем только
100 + 1000 + 10000 = 11100
по другому делаеться так:
28 делим на 2, получаем 14, остаток от деления 0
14 делим на 2, получаем 7, остаток 0
7 делим на 2, берем целую часть 3, остаток 1 (т.е вот так: 3*2+1=7)
3 делим на 2, берем целую часть 1, остаток 1 (т.е вот так: 1*2+1=3)
1 делим на 1, целая часть 0 остаток 1
Теперь берем остатки, и записываем адом наперед 11100
<em><u>Задание 1. </u></em>На самом деле в нем ошибка. Числ Фибоначчи определены начиная с f0=1, а в задании дважды указано f1=1.
uses Crt;
var
k,n,f0,f1,fk:longint;
begin
ClrScr;
f0:=1; f1:=1; k:=2;
Write('n='); Read(n);
Write(f0,' ',f1);
while k<=n do begin
fk:=f0+f1; f0:=f1; f1:=fk; Inc(k);
Write(' ',fk)
end;
Writeln;
ReadKey
end.
<em><u>Тестовое решение:</u></em>
n=20
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946
<em><u>Задание 2.</u></em>
uses Crt;
var
P:real;
M:char;
s:string;
begin
ClrScr;
Write('P='); Readln(P);
Write('M='); Readln(M);
Str(P:0:0,s);
s:=Copy(s,1,3);
if Pos(M,s)>0 then Writeln('Yes') else Writeln('No');
ReadKey
end.
<em><u>Тестовое решение:</u></em>
P=54231.70475438
M=4
Yes
Var n,m:integer;
begin
write('Число = '); readln(n);
write('Цифра = '); readln(m);
if (n div 100 = m)or(n div 10 mod 10 = m)or(n mod 10 = m)
then writeln('Цифра есть')
else writeln('Цифры нет');
end.
Пример:
Число = 519
Цифра = 5
Цифра есть