e-olymp 494 Гласные

Условие задачи:

К гласным буквам в латинском алфавите относятся буквы A, E, I, O, U и Y. Остальные буквы считаются согласными. Напишите программу, считающую количество гласных букв в тексте.

Входные данные:

Во входном файле содержатся одна строка текста, состоящая только из заглавных латинских букв и пробелов. Длина строки не превышает 100 символов.

Выходные данные:

В выходной файл вывести одно целое число – количество гласных во входном тексте.

Входные данные Выходные данные
BE HAAAAPPY ! 6
ZACHTITE PLEASE 6
BBC KLMN 0

Код программы:

Алгоритм решения:
Строка вводится пользователем согласно условию. Перебираем по каждой букве введенной строки или не равны они с соответствующей индексу гласной букве. Если равны, прибавляем счетчику 1. Далее в, любом случае, ищем по оставшимся гласным буквам.

Условие задачи на e-olymp.com
Проверка решения на e-olymp.com
Рабочий код на ideone.com

e-olymp 931 Отношение произведения к сумме

Задача:

Вычислить отношение произведения цифр натурального числа к их сумме.

Входные данные

Натуральное число [latex]n[/latex], не превышающее 2·109.

Выходные данные:

Вывести отношение произведения цифр числа [latex]n[/latex] к их сумме с 3 десятичными цифрами.

Тесты:

Входные данные Выходные данные
12345 8.000
5043 0.000
45 2.222

Код программы:

Алгоритм:
Для решения поставленной задачи нам нужно выделить отдельные цифры в записи данного числа, чтобы сосчитать их произведение и сумму. Воспользуемся циклом while. С помощью остатка от деления числа на 10 получаем последнюю цифру текущего числа, затем делим это число на 10. Получившиеся значения произведения и суммы цифр данного числа разделим, предварительно воспользовавшись явным преобразованием к типу [latex]double[/latex], и присвоим получившееся значение переменной ratio. Ответ с тремя десятичными цифрами после точки выводим с помощью метода [latex]printf[/latex]

Задача на e-olymp.com

Решение на e-olymp.com

Код программы на ideone.com

А165г. Среднее геометрическое

Задача:
Даны действительные числа [latex]a_{1}, a_{2},\ldots[/latex] .
Известно, что [latex]a_{1} > 0,[/latex] и что среди [latex]a_{2}, a_{3},\ldots[/latex] есть хотя бы одно отрицательное число.
Пусть [latex]a_{1},\ldots,a_{n}[/latex] — члены данной последовательности, предшествующие первому отрицательному члену([latex]n[/latex] заранее неизвестно)
Получить:
г) среднее геометрическое [latex]a_{1},\ldots,a_{n}[/latex].

Тесты:

Последовательность Среднее геометрическое
3 6 8 -9 4 5 5.24
13 14 1 4 5 6 -8 1 12 5.29
2 -3 4 2.00
2 2 2 -3 2 3 4 5 2.00
79 3 0.05 2.28

Код программы:

Алгоритм:

Считывать числа с потока ввода. Умножаем числа пока не встретится отрицательное. После чего извлекаем корень используя данные счетчика.
Формула для нахождения Среднего геометрического : [latex]a_{gm} = \sqrt[n]{a_{1}\cdot a_{2}\cdot \ldots \cdot a_{n}}[/latex] Рабочий код на ideone.com

ML10. Найти сопротивление цепи

Условие задачи:

Три сопротивления {R}_{1}{,R}_{2},{{R}_{3}} соединены параллельно. Найти сопротивление цепи.
Входные данные:

Пользователь задает три числа — сопротивления трех резисторов.

Выходные данные:

Выводится число — общее сопротивление цепи.

Тесты:

Входные данные Выходные данные
1 2 3 4 0.923077
2 3 0 5 0.000000
3 4.4 5.5 6.6 1.783784
4 10 20 30 5.454545

Код программы:

 Алгоритм решения:

Сначала задаем три числа — сопротивления трех резисторов. Находим общее сопротивление цепи по формуле [latex]\frac{1}{R} = \frac{1}{R1} + \frac{1}{R2} + \frac{1}{R3}[/latex]. После этого печатается ответ.

Работающая версия программы на ideone.com

A401. Удаление строки и столбца из матрицы

Условие задачи:

Дана действительная квадратная матрица порядка n, натуральные числа  i, j \left(1\leq i\leq n, 1\leq j\leq n \right). Из матрицы удалить  i-строку и j-столбец.

Тесты:

n Матрица. i j Полученная Матрица
4 10 10 20 20
30 30 40 40
50 50 60 60
70 70 80 80
1 1 30 40 40
50 60 60
70 80 80
5 1.1 1.1 1.1 1.1 1.1
2.2 2.2 2.2 2.2 2.2
3.3 3.3 3.3 3.3 3.3
4.4 4.4 4.4 4.4 4.4
5.5 5.5 5.5 5.5 5.5
2 3 1.1 1.1 1.1 1.1
3.3 3.3 3.3 3.3
4.4 4.4 4.4 4.4
5.5 5.5 5.5 5.5
3 2 -2 2
3 -3 3
5 -5 5
1 3 3 -3
4 -4

Код программы:

Алгоритм:

  1. Пользователь вводит  порядок матрицы n и её элементы.Затем он вводит  i-строку и j-столбец, которые он хочет удалить.
  2. В первом цикле создаем переменную — индекс строки нового массива со значением 0. Проверяем, если указанный нам номер строки совпадает с текущим, то мы переходим на следующую по номеру строку, так как эта строка нам больше не понадобится.
  3. Если не совпадает, во внутреннем цикле создаем переменную — номер столбца нового массива со значением 0. Проверяем или совпадает индекс текущего столбца с индексом указанным нам. Если да, то увеличиваем на 1 индекс нашего столбца ( этим мы «обращаем свое внимание» на следующий столбик, игнорируя этот ).
  4. После этого присваиваем значения текущего индекса строки и столбца, получившимся в ходе циклов,значениям индексов нового массива. С помощью внутреннего цикла заполняем данную строку до конца.
  5. После заполнения увеличиваем на 1 индексы данного и нового массива ( переходим на следующую строку матрицы ). Возвращаемся к условию внешнего цикла и продолжаем заполнять новый массив.
  6. Данному массиву присваиваем новый. В конце выводим полученный массив.

Работающая версия программы на ideone.com

ML 24 Радиус вписанной/описанной в треугольник окружности

Условие задачи :

Треугольник задан длинами сторон. Найти радиус вписанной r и описанной R окружностей.

Тесты :

 a  b  c  r  R
3 4 5  1  90
2 2 6  Не существует  Не существует
3.1 4.1 5.1  1.033199  102.970967

Код программы :

Алгоритм :

Проверяем, или образуют данные стороны треугольник. В треугольнике сумма длин любых двух сторон больше длины третьей (или равна её длине, если треугольник вырожденный)

Если условие не выполняется ,сообщаем об этом пользователю :

Если треугольник существует, проводим следующие вычисления (Порядок важен). :

  1. Вычисляем полупериметр p треугольника :p = \frac{a + b + c}{2}
  2. Находим площадь S по формуле Герона : S = \sqrt{p(p-a)(p-b)(p-c)}
  3. Вычисляем радиус r вписанной окружности по формуле : r = \frac{S}{p}
  4. Вычисляем радиус описанной окружности R по формуле : R = \frac{abc}{4S}

Работающая версия программы на Ideone.con :

Ideone.com