水题,先用叉积求三角形面积
然后求三边上的点(由公约数上点)a
然后用pick定理S=a+b/2-1
就可以求出内部的点数了
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 var x,y,xx,yy,a1,a2,a3,x1,x2,x3,y1,y2,y3:longint; 2 s,ans:double; 3 4 function gcd(a,b:longint):longint; 5 begin 6 if b=0 then exit(a) 7 else exit(gcd(b,a mod b)); 8 end; 9 10 begin 11 readln(x1,y1,x2,y2,x3,y3); 12 while not((x1=0) and (x2=0) and (x3=0) and (y1=0) and (y2=0) and (y3=0)) do 13 begin 14 x:=x2-x1; 15 y:=y2-y1; 16 xx:=x3-x1; 17 yy:=y3-y1; 18 s:=abs(x*yy-y*xx)/2; 19 a1:=gcd(abs(x1-x2),abs(y1-y2)); 20 a2:=gcd(abs(x1-x3),abs(y1-y3)); 21 a3:=gcd(abs(x2-x3),abs(y2-y3)); 22 ans:=s+1-(a1+a2+a3)/2; 23 writeln(ans:0:0); 24 readln(x1,y1,x2,y2,x3,y3); 25 end; 26 end.