1. (1кг)___( ? )
2. (2кг)___( ? )
3. (1кг + 2кг)___( ? )
4. (4кг)___( ? )
5. (4кг + 1кг)___( ? )
6. (4кг + 2кг)___( ? )
7. (4кг + 2кг + 1кг)___( ? )
Ответ: на весах можно взвесить любой целый вес от 1 до 7.
C:\документы\учёба\диплом.doc
C:\документы\хобби\документ.xls
C:\документы\хобби\документ.txt
<h3>Алгоритм решения</h3>
Для каждого из пяти чисел:
Пока число больше нуля, увеличиваем счётчик количества цифр на 1 и прибавляем последнюю цифру к счётчику суммы.
Необходимо учесть, что для K=0 количество цифр C=1.
<h3>Код (Pascal)</h3>
var
x, i, anc, ans: integer;
procedure Sum(k: integer; var c, s: integer);
begin
c := 0;
if k = 0 then c := 1;
s := 0;
while (k > 0) do
begin
c := c + 1;
s := s + (k mod 10);
k := k div 10;
end
end;
begin
for i := 1 to 5 do
begin
read(x);
Sum(x, anc, ans);
writeln(anc, ' ', ans);
end;
end.
-------------------------------------------------
Файл решения прикреплён.
<u>A. Решение на калькуляторе</u>
1. Находим общее количество пикселей
n = 1024×768 = 786432
2. Находим количество бит, необходимое для отображения цвета одного пикселя
k=㏒₂64 = 6 (или просто вспоминаем, что 64=2⁶)
3. Определяем объем информации в битах
I = n×k = 786432×6 = 4718592 бит
4. Переводим в более крупные единицы
- в байты: 1 байт=8 бит; 4718592 бит/8 = 589824 байт
- в Кбайты: 1 Кбайт=1024 байта; 589824 байт/1024 = 576 Кбайт
- в Мбайты: 1 Мбайт=1024 Кбайта; 576 Кбайт/1024 = 0.5625 Мбайт.
<u>Б. Решение "в степенях двойки"</u>
1. Находим общее количество пикселей
n = 1024×768 = 2¹⁰×2⁹×1.5 = 2¹⁹×1.5
2. Находим количество бит, необходимое для отображения цвета одного пикселя
k=㏒₂64 = 6 (или просто вспоминаем, что 64=2⁶)
3. Определяем объем информации в битах
I = n×k = 2¹⁹×1.5×6 = 2¹⁹×9 бит
4. Переводим в более крупные единицы
- в байты: 1 байт=2³ бит; 2¹⁹×9 бит/2³ = 2¹⁶×9 байт
- в Кбайты: 1 Кбайт=2¹⁰ байт; 2¹⁶×9 байт/2¹⁰ = 2⁶×9 Кбайт = 64×9 = 576 Кбайт
- в Мбайты: 1 Мбайт=2¹⁰ Кбайт; 2⁶×9 Кбайт/2¹⁰ = 2⁻⁴×9 Мбайт = 9/16 Мбайт = 0.5625 Мбайт.
Var
n, k, i: integer;
s: string;
begin
write('Введите число: ');
read(s);
write('Введите исходную систему счисления: ');
read(k);
for i := 1 to length(s) do
n := n * k + ord(s[i]) - 48;
write(s, '(2) = ', n, '(10)');
end.
Пример работы программы:
Введите число: 101000111000111
Введите исходную систему счисления: 2
101000111000111(2) = 20935(10)