Форум программистов, компьютерный форум CyberForum.ru

Точки в многоугольнике - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Написать функцию, которая возвращает количество нулевых бит в символах строки http://www.cyberforum.ru/cpp-beginners/thread260154.html
Есть срочная задача: написать функцию, которая возвращает количество нулевых бит в символах строки (не считая нулевой символ в конце строки). Нужно решить задачу несколькими способами. Я уже сделал это с помощью обычных побитовых операций << и &. Можно ли использовать тут класс BitSet? А если нет - то подскажите пожалуйста другие варианты.
C++ использование vector и struct недавно пересел на С++, пытаюсь сделать программу, которую я делал на паскале struct elem { long Li; long Ri; }; int main(int argc, char *argv) { http://www.cyberforum.ru/cpp-beginners/thread260152.html
Рекурсия C++
Разработать рекурсивную функцию не возврашающую значений: Дано натуральное четное число n. Разработать функцию для вывода на экран следующей картинки: ********* (0 пробелов, n звездочек) ******** (1 пробел, n-1 звездочка) ******* (2...
Использование функций шаблонов C++
Использование функций шаблонов: для работы с двумерными массивами арифметических типов данных разработать шаблоны ввода массива, а также шаблон для решения основной задачи: Подсчитать среднее арифметическое элементов, расположенных выше главной диагонали. Буду очень признателен! Заранее спасибо! Добавлено через 59 минут плохо понимаю задачу Добавлено через 39 минут Неужели никто не...
C++ Алгоритм Коммивояжера http://www.cyberforum.ru/cpp-beginners/thread260117.html
кто может помочь с прогой на С или С++?
C++ Содержит ли заданный массив группы элементов, расположенные в порядке возрастания их значений Определить содержит ли заданный массив группы элементов,расположенные в порядке возрастания их значений.(CИ). подробнее

Показать сообщение отдельно
Mayonez
380 / 272 / 21
Регистрация: 26.12.2009
Сообщений: 875
20.03.2011, 18:04     Точки в многоугольнике
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include <iostream>
#include <vector>
////////////////////////////////////////////////////////////////////////////////
using namespace std;
////////////////////////////////////////////////////////////////////////////////
int gcd (int a, int b)
{
   while (b > 0)
   {
        int c = a%b;
        a = b;
        b = c;
    }
    return a;
}
////////////////////////////////////////////////////////////////////////////////
float sq (vector <pair <int, int> > v)
{
   float res = 0;
   for (int i = 0; i < v.size(); i++)
   {
      pair <int, int> one, two;
      one = i ? v[i-1] : v.back();
      two = v[i];
      res += (one.first - two.first)*(one.second + two.second);
   }
   return fabs(res)/2;
}
////////////////////////////////////////////////////////////////////////////////
int kt (vector <pair <int, int> > v)
{
   int res = 0;
   for (int i = 0; i < v.size(); i++)
   {
      pair <int, int> one, two;
      one = i ? v[i-1] : v.back();
      two = v[i];
      int dx, dy;
      dx = abs(one.first - two.first);
      dy = abs(one.second - two.second);
      res += gcd (dx, dy);
   }
   return res;
}
////////////////////////////////////////////////////////////////////////////////
int main()
{
   locale::global(locale(""));
   cout << "Введите количество вершин: ";
   int n;
   cin >> n;
   
   vector <pair <int, int> > poligon;
   for (int i = 0; i < n; i++)
   {
      int x, y;
      cin >> x >> y;
      poligon.push_back(make_pair(x, y));
   }
   
   int M = kt(poligon);
   int S = (int)sq(poligon);
   int K = S - M/2 + 1;
   cout << "Количество точек с целочисельными координатами " 
        << "равно " << K << endl;
   return 0; 
}


Добавлено через 1 минуту
проверьте...

Добавлено через 4 минуты
+самое крутое решение
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru