高级天翼
4359 相似图形
经验值:400 时间限制:1000毫秒
经开区2019年信息学竞赛试题
不许抄袭,一旦发现,直接清空经验!
题目描述 Description
图图和小美是牡丹小学六(1)班的学生。秉承“学习使我妈快乐”的精神,他们一直努力地学习新的知识。特别是在数学知识的学习上,他们具有很强的超前意识,现在已经学到了相似图形。以三角形为例,如果两个三角形的三边成比例,那么这两个三角形就相似。比如,第一个三角形的三边长分别为4、5、6,第二个三角形的三边长分别为8、10、12,则有8/4=2,10/5=2,12/6=2,他们的比例都是2,因此这两个三角形相似。现分别给出这两个三角形的三边长度,请判断它们是否相似,如果相似,输出“Yes”,如果不相似,输出“No”。
输入描述 Input Description
两行:第一行三个正整数,为第一个三角形的三边长;第二行三个正整数,为第二个三角形对应的三边边长。
输出描述 Output Description
一行:Yes或No。
样例输入 Sample Input
4 5 6 8 15 12
样例输出 Sample Output
No
数据范围及提示 Data Size & Hint
每一个数都不超出int范围,数据保证能构成三角形,第二个三角形对应边的长度一定大于等于第一个三角形的对应边,且比例一定是正整数。
#include<iostream>
using namespace std;
int main(){
int a,b,c,d,x,y,s,s2;
cin>>a>>b>>c>>d>>x>>y;
if(d%a==0||a%d==0){
s=d/a;
if(b%x==0||x%b==0){
if(y%c==0||c%y==0){
cout<<"Yes";
}
else{
cout<<"No";
}
}
else{
cout<<"No";
}
}
else{
cout<<"No";
}
return 0;
}
80分???
高级守护
不用这么麻烦
将6个变量分别定义为:a,b,c,x,y,z
只要a*1.0/x等于b*1.0/y且b*1.0/y等于c*1.0/z(三个结果相等)
那么输出yes
否则输出no
求采纳
高级守护
核心:
if(a%d==0){
s=a/d;
if(e*s==b){
if(f*e==c){
cout<<"Yes";
l=1;
}
}
}
else if(d%a==0){
s=d/a;
if(b*s==e){
if(c*s==f){
cout<<"Yes";
l=1;
}
}
}