1. 程式人生 > >相似三角形 (sdut oj)

相似三角形 (sdut oj)

相似三角形

Time Limit: 1000MS Memory Limit: 65536KB

Problem Description

給出兩個三角形的三條邊,判斷是否相似。

Input

多組資料,給出6正個整數,a1,b1,c1,a2,b2,c2,分別代表兩個三角形。(邊長小於100且無序

Output

如果相似輸出YES,如果不相似輸出NO,如果三邊組不成三角形也輸出NO。

Example Input

1 2 3 2 4 6
3 4 5 6 8 10
3 4 5 7 8 10

Example Output

NO
YES
NO

Hint

Author

提示:

本題相對來說是本實驗中比較有難度的,主要有三點需要注意。

一、首先兩組資料都可以構成三角形 二、題目要求邊長小於100且無序
三、對應三邊成比例則為相似三角形
所以我們必須將資料型別定義為實型才可以得到更準確的邊的對應比例,然後判斷兩組資料是否能夠構成三角形。如果都能構成三角形,對兩個三角形的三邊進行排序,得到兩組可以相互對應的三邊邊長,最後再判斷相互對應的三邊是否為同一比例。

參考程式碼

#include<stdio.h>
int main()
{
    double a1,b1,c1,a2,b2,c2,temp,a,b,c;
    while(scanf("%lf%lf%lf%lf%lf%lf",&a1,&b1,&c1,&a2,&b2,&c2) !=EOF)
    {
        if(a1 > b1)
        {
            temp = a1;
            a1 = b1;
            b1 = temp;
        }
        if(a1 > c1)
        {
            temp=a1;
            a1=c1;
            c1=temp;
        }
        if(b1 > c1)
        {
            temp=b1;
            b1=c1;
            c1=temp;
        }
        if(a2 > b2)
        {
            temp=a2;
            a2=b2;
            b2=temp;
        }
        if(a2 > c2)
        {
            temp=a2;
            a2=c2;
            c2=temp;
        }
        if(b2 > c2)
        {
            temp=b2;
            b2=c2;
            c2=temp;
        }
        // 分別對兩個三角形的邊長排序
        
        a = a1 / a2;
        b = b1 / b2;
        c = c1 / c2;
        // 求出三條邊的對應比例
        if(a1 + b1 > c1 && a2 + b2 > c2 && c1 - b1 < a1 && c2 - b2 < a2)  //判斷是否為三角形
            if(a == b && b == c)  //  判斷是否為相似三角形
                printf("YES\n");
            else
                printf("NO\n");
        else
            printf("NO\n");

    }
    return 0;
}


相關推薦

相似三角形 (sdut oj)

相似三角形 Time Limit: 1000MS Memory Limit: 65536KB Problem Description 給出兩個三角形的三條邊,判斷是否相似。 Inp

sdut 相似三角形

#include <iostream> #include<algorithm> //相似三角形的條件: //1、任意兩邊之和大於第三邊或者任意兩邊之差小於第三邊 //2,三條邊對應的比例相等 using namespace std; int main() {     float a[

SDUT 2562 相似三角形

Problem Description 給出兩個三角形的三條邊,判斷是否相似。 Input 多組資料,給出6正個整數,a1,b1,c1,a2,b2,c2,分別代表兩個三角形。(邊長小於100且無

三角形面積 (sdut oj)

求三角形面積 Time Limit: 1000MS Memory Limit: 65536KB Problem Description 已知三角形的邊長a、b和c,求其面積。 In

相似三角形---Java

Problem Description 給出兩個三角形的三條邊,判斷是否相似。 Input 多組資料,給出6正個整數,a1,b1,c1,a2,b2,c2,分別代表兩個三角形。(邊長小於100且無序) Output 如果相似輸出YES,如果不相似輸出NO,如果三邊組不成三角形也

SDUT OJ順序表應用4-2:元素位置互換之逆置演算法(資料改進)

順序表應用4-2:元素位置互換之逆置演算法(資料改進) Time Limit: 80 ms Memory Limit: 600 KiB Problem Description 一個長度為len(1<=len<=1000000)的順序表,資料元素的型別為整

Java實驗之判斷相似三角形

Problem Description 給出兩個三角形的三條邊,判斷是否相似。 Input 多組資料,給出6正個整數,a1,b1,c1,a2,b2,c2,分別代表兩個三角形。(邊長小於100且無序) Output 如果相似輸出YES,如果不相似輸出NO,如果三邊組不

相似三角形

/* * 知識點回顧:自動型別轉換 * 強制型別轉換 * * 注意事項:本題中數字為無序,我們需將它排序 */ import java.util.*; class Triangle{ int a,b,

SDUT OJ 1200 漢諾塔(遞迴)

漢諾塔 Problem Description 漢諾塔(又稱河內塔)問題是印度的一個古老的傳說。 開天闢地的神勃拉瑪在一個廟裡留下了三根金剛石的棒A、B和C,A上面套著n個圓的金片,最大的一個在底下,其餘一個比一個小,依次疊上去,廟裡的眾僧不倦地把它們一個個地從A棒搬到C棒上,規定可

SDUT OJ 3442 爬山

思路很簡單,找到最大海拔高度(山頂),減去現在的海拔高度,作差就可以AC了 AC程式碼: #include <stdio.h> int main() { int i,j,m,n,x,y,max,now; while(~scanf("%d %d",&n

C/C++練習7---求某個範圍內的所有素數 (sdut oj)

C/C++練習7---求某個範圍內的所有素數 Time Limit: 1000MS Memory Limit: 65536KB Problem Description 求小於n的所有素

完美的素數 (sdut oj)

完美的素數 Time Limit: 1000MS Memory Limit: 65536KB Problem Description       素數又稱質數。指一個大於1的自然數,除了

SDUT OJ 2143 圖結構練習——最短路徑

圖結構練習——最短路徑 Time Limit: 1000MS Memory limit: 65536K 題目描述  給定一個帶權無向圖,求節點1到節點n的最短路徑。 輸入

C語言實驗——求階乘(迴圈結構) (sdut oj)

C語言實驗——求階乘(迴圈結構) Time Limit: 3000MS Memory Limit: 65536KB Problem Description 從鍵盤輸入任意一個大於等於0

SDUT oj 二叉排序樹

二叉排序樹 Time Limit: 1000MS Memory limit: 65536K 題目描述 二叉排序樹的定義是:或者是一棵空樹,或者是具有下列性質的二叉樹: 若它的左子樹

資料結構實驗之二叉樹五:層序遍歷 (sdut OJ 3344)

資料結構實驗之二叉樹五:層序遍歷 Time Limit: 1000ms   Memory limit: 65536K  有疑問?點這裡^_^ 題目描述 已知一個按先序輸入的字元序

SDUT OJ 二叉排序樹

二叉排序樹 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 二叉排序樹的定義是:或者是一棵空樹,或者是具有下列性質的二叉樹: 若它的左子樹不空,則左子樹上所有結點的值均小於它的根結點的值

SDUT OJ 資料結構實驗之圖論二:圖的深度遍歷

資料結構實驗之圖論二:圖的深度遍歷 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 請定一個無向圖,頂點編號從0到n-1,用深度優先搜尋(DFS),遍歷並輸出。遍歷時,先遍歷節點編號小的

簡單計算 (sdut oj)

簡單計算 Time Limit: 1000MS Memory Limit: 65536KB Problem Description 接受從鍵盤輸入的N個整數,輸出其中的最大值、最小值和

求絕對值最大值 (sdut oj)

求絕對值最大值 Time Limit: 1000MS Memory Limit: 65536KB Problem Description 求n個整數中的絕對值最大的數。 Input