Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Пример выхода

Читайте также:
  1. Boot (англ. загрузка. Пример: основной загрузочный сектор) -вирусы
  2. D.1. Примеры уязвимостей
  3. III. После этого раненую конечность лучше всего зафиксировать, например, подвесив на косынке или при помощи шин, что является третьим принципом оказания помощи при ранениях.
  4. SWOT- анализ на примере ветеринарной аптечной сети.
  5. SWOT-анализ на примере ветеринарной аптечной сети.
  6. VII. Примерный перечень вопросов к зачету
  7. Анализ 80/20 на примере консалтинговой фирмы

100.0

266.6666666666667

148.0487804878049

РЕШЕНИЕ

За 200 часов работник получит t = p 1 * 200 долларов. Если эта сумма больше salary, то достаточно работать salary / p 1 часов. Иначе следует отработать 200 часов с зарплатой p 1 долларов в час, а остальное время с зарплатой p 2 долларов в час. При этом количество часов, когда зарплата будет составлять p 2 долларов в час, равна (salaryt) / p 2.

#include < stdio.h >

class SalaryCalculator

{

public:

double calcHours(int p1, int p2, int salary)

{

int t = p1 * 200;

if (t >= salary) return 1.0 * salary / p1;

return 200 + 1.0 * (salary - t) / p2;

}

};

Для тестирования функции calcHours следует написать функцию main.

void main(void)

{

SalaryCalculator s;

double res = s.calcHours(82,8,12140);

printf("%lf\n",res);

}

Убежать из прямоугольника (EscapeFromRectangle)

Вы находитесь в точке (x, y) внутри прямоугольника, нижний левый угол которого имеет координаты (0, 0), а правый верхний (w, h). Найти наименьшее расстояние, которое Вам следует преодолеть чтобы достичь границы прямоугольника.

Класс: EscapeFromRectangle

Метод: int shortest(int x, int y, int w, int h)

Ограничения: 2 ≤ w, h ≤ 1000, 1 ≤ x ≤ w-1, 1 ≤ y ≤ h-1.

Вход. Целочисленные координаты Вашего положения (x, y) и правой верхней вершины прямоугольника (w, h).

Выход. Наименьшее расстояние, которое следует преодолеть для достижения границы прямоугольника.

Пример входа

x y w h
       
       
       

Пример выхода


РЕШЕНИЕ

Находим расстояния от точки (x, y) до всех четырех сторон прямоугольника, которые соответственно равны x, y, wx, hy. Возвращаем наименьшее из этих значений.

#include < stdio.h >

class EscapeFromRectangle

{

public:

int shortest(int x, int y, int w, int h)

{

int res = x;

if (y < res) res = y;

if (w - x < res) res = w - x;

if (h - y < res) res = h - y;

return res; } };

Наибольший прямоугольник (BiggestRectangleEasy)

У Джона есть n спичек, каждая из которых имеет длину 1. Он хочет составить из них прямоугольник наибольшей площади. Ломать спички нельзя. Джону не обязательно использовать все спички.

Класс: BiggestRectangleEasy

Метод: int findArea(int n)

Ограничения: 4 ≤ n ≤ 10000.

Вход. Количество спичек n, которое имеется в наличии у Джона.

Пример входа n
 
 
 

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

 

Пример выхода 6 1 3288782

РЕШЕНИЕ

Если одна из сторон прямоугольника равна x, то другую можно найти по формуле:

y = (n – 2* x) / 2

Площадь полученного прямоугольника равна S(x) = x * (n – 2* x) / 2. Она будет наибольшей в такой точке x, в которой S’(x) = 0. Имеем: S’(x) = (n – 4* x) / 2 = 0, x = n / 4. То есть искомым прямоугольником будет квадрат.

Если n не делится на 4, то выполняя целочисленные деления, получим правильный результат.

#include < stdio.h >

class BiggestRectangleEasy

{

public:

int findArea(int n)

{

int x = n / 4;

int y = (n - 2 * x) / 2;

x y x=y   x y x y
             
             
             
             

return x * y; } };


Дата добавления: 2015-11-14; просмотров: 23 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Методы класса| Теоретическая часть

mybiblioteka.su - 2015-2024 год. (0.006 сек.)