С++ Дана химическая формула в развернутом виде — то есть каждый элемент указан столько раз, сколько раз в ней встречается, числа отсутствуют. Однако, порядок элементов важен. Например формулы CCOH (C2H5OH) и CCO (C2H6O) считаются различными. Требуется заменить заданную химическую формулу на ее сокращенный эквивалент — ряд из K подряд идущих одинаковых элементов X заменяется на запись XK при K > 1. Если элемент ровно один, то K опускается (вместо записи X1 останется запись X). См. примеры для уточнения.
Входные данные
В единственной строке входного файла содержится химическая формула, состоящая из заглавных букв латинского алфавита. Количество букв в записи — не менее 1 и не более 100.
Выходные данные
Вывести одну строку — сокращенный эквивалент химической формулы. Символы элементов нужно оставить заглавными.
open System
[<EntryPoint>]
let main argv =
let mutable sum = 0
let mutable i = 0
let array = [19..51]
while i < array.Length do
let value = array.Item i
if 5 % value = 0 then
sum <- sum + value
i <- i+1
Console.WriteLine sum
Console.ReadKey true |> ignore
0
// Pascal (for)
var sum : integer;
i: integer;
begin
sum := 0;
i := 0;
for i:=19 to 51 do
begin
if i mod 5 = 0 then
sum := sum + i;
end;
writeln(sum);
end.
// Pascal
var sum : integer;
i: integer;
begin
sum := 0;
i := 19;
while (i <= 51) do
begin
if i mod 5 = 0 then
sum := sum + i;
i := i + 1;
end;
writeln(sum);
end.
var = function (array, minValue, maxValue){
var isInLimit = function (value) {
return value >= minValue && value <= maxValue;
}
var = function (array, func) {
var results = [];
array.forEach(function(element, index, array) {
if (!!func(element)) {
results.push(index);
}
});
return results;
}
return (array, isInLimit);
}
// That's an example of using the function
([1, 5, 2, 3, 4], 1, 3);