问题标题: 酷町堂:4359   相似图形

0
0
已解决
熊智晖
熊智晖
高级天翼
高级天翼

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分???


0
已采纳
张新杨
张新杨
高级守护
高级守护

不用这么麻烦

将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

求采纳

0
0
朱欣然
朱欣然
高级守护
高级守护

核心:

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;

            }

        }

    }

0
我要回答