1. Очевидно в формулировке задания пропущена еше одна буква - Е Решение: Проще всего перевести последовательность букв в шестиричную систему счисления. Тогда получим: А ->0, Г -> 1, Д -> 2, E -> 3, П -> 4, Р ->5 Упорядоченную последовательность слов можно записать так: 1. ААА - 000 2. ААГ - 001 3. ААД - 002
N. ГАА - 100 -наше первое слово начинающееся на Г Переведем число 100 из шестиричной системы счисления в десятичную и получим: 1 *6^2+0*6^1+0*6^0=36 Так как список слов начинается с 1, то надо 36 увеличить на единицу. ответ: 37
Если ограничиваться только целочисленным числом суток, будет всегда получаться полные часы, а минуты и секунды будут нулевыми.
// PascalABC.NET 3.1, сборка 1172 от 19.02.2016 begin var d:=ReadReal('Количество суток')*24; var h:=Trunc(d); d:=Frac(d)*60; var m:=Trunc(d); d:=Frac(d)*60; var s:=Round(d); // преодоление ошибок неточного представления чисел в ЭВМ if s=60 then begin Inc(m); s:=0 end; if m=60 then begin Inc(h); m:=0 end; WritelnFormat('{0}ч {1}м {2}с ',h,m,s) end.
Решение:
Проще всего перевести последовательность букв в шестиричную систему счисления. Тогда получим:
А ->0, Г -> 1, Д -> 2, E -> 3, П -> 4, Р ->5
Упорядоченную последовательность слов можно записать так:
1. ААА - 000
2. ААГ - 001
3. ААД - 002
N. ГАА - 100 -наше первое слово начинающееся на Г
Переведем число 100 из шестиричной системы счисления в десятичную и получим:
1 *6^2+0*6^1+0*6^0=36
Так как список слов начинается с 1, то надо 36 увеличить на единицу.
ответ: 37
// PascalABC.NET 3.1, сборка 1172 от 19.02.2016
begin
var d:=ReadReal('Количество суток')*24;
var h:=Trunc(d);
d:=Frac(d)*60;
var m:=Trunc(d);
d:=Frac(d)*60;
var s:=Round(d);
// преодоление ошибок неточного представления чисел в ЭВМ
if s=60 then begin Inc(m); s:=0 end;
if m=60 then begin Inc(h); m:=0 end;
WritelnFormat('{0}ч {1}м {2}с ',h,m,s)
end.
Тестовые решения:
Количество суток 0.35
8ч 24м 0с
Количество суток 4
96ч 0м 0с
Количество суток 2.532
60ч 46м 5с