24h購物| | PChome| 登入
2011-05-29 22:26:29| 人氣1,186| 回應0 | 上一篇 | 下一篇

d980. 11479 - Is this the easiest problem?

推薦 0 收藏 0 轉貼0 訂閱站台

http://zerojudge.tw/ShowProblem?problemid=d980

內容 :

三角形是一種有三個正邊的幾何形狀。但是並非任意三個邊都可以形成一個三角形,這三個邊必需構成一個封閉區域。三角形可以其邊長來分類,本題便是要你判定三角形的種類。 

輸入說明 :

輸入的第一行有一個正整數 T<20,表示有 T 筆測試資料。接下來的 T 行每行有三個 32 位元的有號整數。

輸出說明 :

對於每筆測資請輸出一行,其格式為:Case {x}: {triangle type}。其中 x 表示測資編號,{triangle type} 為三角形的種類。依三邊長的值,{triangle type} 是以下的一種: 

  • Invalid - 這三邊無法形成一個三角形 
  • Equilateral  -  三邊均等長
  • Isosceles  - 恰有兩邊等長
  • Scalene - 三邊均不等長

範例輸入 :

41 2 51 1 14 4 23 4 5

範例輸出 :

Case 1: InvalidCase 2: EquilateralCase 3: IsoscelesCase 4: Scalene

提示 :

32 位元的有號整數 (32 bit signed integer):-2147483648 ~ 2147483647

出處 :

UVa ACM 11479 (管理:snail)

這題很不湊巧地,卡在if 中的型態,要用long long

#include<stdio.h>
#define swap(x,y) {long long t=x; x=y; y=t;}
int main() {
    int T, C = 0;
    scanf("%d", &T);
    while(T--) {
        long long n[3];
        scanf("%lld %lld %lld", &n[0], &n[1], &n[2]);
        if(n[0] > n[2]) swap(n[0], n[2]);
        if(n[1] > n[2]) swap(n[1], n[2]);
        if(n[0] > n[1]) swap(n[0], n[1]);
        printf("Case %d: ",++C);
        if(n[0] + n[1] <= n[2]) puts("Invalid");
        else if(n[0] == n[2] && n[1] == n[2]) puts("Equilateral");
        else if(n[0] == n[1] || n[1] == n[2]) puts("Isosceles");
        else puts("Scalene");
    }
    return 0;
}

台長: Morris
人氣(1,186) | 回應(0)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 不分類 | 個人分類: UVA |
此分類下一篇:a130. 12015 - Google is Feeling Lucky
此分類上一篇:d898. Q10128: Queue

是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文