1. 程式人生 > >[幾何]三角形的內點

[幾何]三角形的內點

空格 ont 輸入 space microsoft 三角形 long long tex margin

在一個平面坐標系中,我們可以選出三個不全在一條線上的點構成一個三角形。我們稱一個在三角形內(不包含三角形的邊上),橫縱坐標皆為整數的點位這個三角形的內點。 對於一個由(0,0)、(n,m)、(p,0)作為頂點構成的三角形,請你設計程序求出他的內點數。

輸入包括一行,包括三個用空格分隔的整數,分別為n,m,p(0 ≤ n < 32000,0 < m < 32000,0 < p < 32000)。

輸出僅一個數,為這個三角形的內點的個數。

樣例輸入

7 5 10

樣例輸出

20

皮克定理:2s=2a+b-2
s:三角形面積
a:三角形內部的點的數目
b:三角形邊界上的點的數目

#include <bits/stdc++.h>
#define
ll long long using namespace std; const ll N=1e9+7; int n,m,p; int gcd(int a,int b) { if(b==0) return a; return gcd(b,a%b); } int main() { scanf("%d %d %d",&n,&m,&p); int s=m*p/2; int sum=s+1-(p+gcd(n,m)+gcd(abs(n-p),m))/2; printf("%d\n",sum); return 0; }

 

[幾何]三角形的內點