今日三题
2036.改革春风吹满地
任意多边形面积:
#include<iostream>
using namespace std;
void main(){
int n,x[100],y[100],i,sum=0;
cin>>n ;
if(n==0)
exit(0);
for(i=0;i<n;i++){
cin>>x[i]>>y[i];
}
x[n]=x[0];
y[n]=y[0];
for(i=0;i<n;i++){
//S = 0.5 * ( (x0*y1-x1*y0) + (x1*y2-x2*y1) + ... + (xn*y0-x0*yn) )
sum+=(x[i]*y[i+1]-x[i+1]*y[i]);
}
cout<<sum/2<<endl;
}
#include <iostream>
#include <iomanip>
using namespace std;
struct point
{
int x,y;
}p[103];
double area(point a,point b)
{
return a.x*b.y-b.x*a.y;
}
int main()
{
int n,i;
while(cin>>n&&n)
{
double sum=0;
for(i=1;i<=n;i++)
cin>>p[i].x>>p[i].y;
for(i=1;i<=n-1;i++)
sum+=area(p[i],p[i+1]);
sum+=area(p[n],p[1]);
cout<<setiosflags(ios::fixed)<<setprecision(1)<<sum/2.0<<endl;
}
return 0;
}
2039.三角形
注意输入无规定是整数
#include<iostream>
#include<cmath>
using namespace std;
void main(){
int n;
double a,b,c;
cin>>n;
while(n--){
cin>>a>>b>>c;
if(((a+b)>c)&&abs((a-b)<c))
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
}
}
2040.亲和数
#include<iostream>
#include<cmath>
using namespace std;
void main(){
int n,i,j,a,b,sum1=0,sum2=0;
cin>>n;
while(n--){
cin>>a>>b;
for(i=1;i<a;i++){
if(a%i==0){
sum1=sum1+i;
}
}
for(i=1;i<b;i++){
if(b%i==0){
sum2=sum2+i;
}
}
if((sum1==b)&&(sum2==a))
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
}
}