1+1=10 (ноль пишем, 1 - переходит в старший разряд) Вообще все можно представить так - 1-самая старшая цифра в двоичной с.с. (В десятичной - это 9. При прибавлении в десятичной с.с. к 9 мы получаем 10, так происходит во всех с.с. Только в двоичной самая старшая 1 и, при прибавлении к ней 1 мы получаем также 10) 101011 +101010 1010101 Аналогично при вычитании. Представим число в десятичной с.с, например,1000. Если из него нужно вычесть 1, то мы заберем нужный нам разряд у 1. Тогда последний 0 превратится в 10, а все остальные 0 в 1. 11101 - 1111 1110 Ну, а умножение - это тот же процесс сложения. 10110 1111 10110 + 10110 10110 10110 101001010
Function HasK(n:longint;k:char):boolean; { возвращает true, если в числе n имеется цифра 'k' } var ns:string; begin Str(n,ns); { переходим к символьному изображению числа } HasK:=(Pos(k,ns))>0 end;
var a,b,i,kol:longint; k:char; begin Write('Введите интервал чисел: '); Readln(a,b); Write('Введите искомую цифру: '); Readln(k); kol:=0; for i:=a to b do if HasK(i,k) then kol:=kol+1; Writeln('Количество чисел с цифрой ',k,': ',kol) end.
Тестовое решение: Введите интервал чисел: 136 523 Введите искомую цифру: 5 Количество чисел с цифрой 5: 96
Вообще все можно представить так - 1-самая старшая цифра в двоичной с.с. (В десятичной - это 9. При прибавлении в десятичной с.с. к 9 мы получаем 10, так происходит во всех с.с. Только в двоичной самая старшая 1 и, при прибавлении к ней 1 мы получаем также 10)
101011
+101010
1010101
Аналогично при вычитании. Представим число в десятичной с.с, например,1000. Если из него нужно вычесть 1, то мы заберем нужный нам разряд у 1. Тогда последний 0 превратится в 10, а все остальные 0 в 1.
11101
- 1111
1110
Ну, а умножение - это тот же процесс сложения.
10110
1111
10110
+ 10110
10110
10110
101001010
{ возвращает true, если в числе n имеется цифра 'k' }
var ns:string;
begin
Str(n,ns); { переходим к символьному изображению числа }
HasK:=(Pos(k,ns))>0
end;
var
a,b,i,kol:longint;
k:char;
begin
Write('Введите интервал чисел: '); Readln(a,b);
Write('Введите искомую цифру: '); Readln(k);
kol:=0;
for i:=a to b do
if HasK(i,k) then kol:=kol+1;
Writeln('Количество чисел с цифрой ',k,': ',kol)
end.
Тестовое решение:
Введите интервал чисел: 136 523
Введите искомую цифру: 5
Количество чисел с цифрой 5: 96