31 Aralık 2012 Pazartesi

判斷是何種三角形


判斷何種三角形
當三個邊長能夠構成三角形時,再判斷該三角形為鈍角、銳角或是直角三角形,其判別方法如下:
1. 直角三角形:其中有兩個邊的平方和等於第三邊的平方。
2. 鈍角三角形:其中有兩個邊的平方和小於第三邊的平方。
3. 銳角三角形:任兩邊的平方和大於第三邊的平方。
輸入三個整數

輸出:顯示直角三角形(Right Triangle)、鈍角三角形(Obtuse Triangle)、
銳角三角形(Acute Triangle)或無法構成三角形(Not Triangle)。

範例輸入
5 12 13
範例輸出
Right Triangle


  1. #include <stdio.h>  
  2. #include <stdlib.h>  
  3. #include <math.h>  
  4.   
  5. float is(float a, int b, int c)  
  6. {  
  7.     int min, max, middle;  
  8.     if(a >= b && a >= c)  
  9.     {  
  10.         max = a;  
  11.         if(b >= c)  
  12.         {  
  13.             middle = b;  
  14.             min = c;  
  15.         }  
  16.         else  
  17.         {  
  18.             middle = c;  
  19.             min = b;  
  20.         }  
  21.     }  
  22.     else if(b >= a && b >= c)  
  23.     {  
  24.         max = b;  
  25.         if(a >= c)  
  26.         {  
  27.             middle = a;  
  28.             min = c;  
  29.         }  
  30.         else  
  31.         {  
  32.             middle = c;  
  33.             min = a;  
  34.         }  
  35.     }  
  36.     else  
  37.     {  
  38.         max = c;  
  39.         if(a >= b)  
  40.         {  
  41.             middle = a;  
  42.             min = b;  
  43.         }  
  44.         else  
  45.         {  
  46.             middle = b;  
  47.             min = a;  
  48.         }  
  49.     }  
  50.     if(min + middle > max)  
  51.     {  
  52.         return 1;  
  53.     }  
  54.     return 0;  
  55. }  
  56. int control_acute (int a, int b, int c)  
  57. {  
  58.     if(!(pow(a, 2) + pow(b, 2)) > pow(c, 2)){}  
  59.     else if(!(pow(a, 2) + pow(c, 2)) > pow(b, 2)){}  
  60.     else if((pow(b, 2) + pow(c, 2)) > pow(a, 2))  
  61.     return 1;     
  62.     {  
  63.     }  
  64.     return 0;  
  65. }  
  66. int control_obtuse (int a, int b, int c)   
  67. {  
  68.     if((pow(a, 2) + pow(b, 2)) < pow(c, 2))  
  69.     {  
  70.         return 1;  
  71.     }  
  72.     else if((pow(a, 2) + pow(c, 2)) < pow(b, 2))  
  73.     {  
  74.         return 1;  
  75.     }  
  76.     else if((pow(b, 2) + pow(c, 2)) < pow(a, 2))  
  77.     {  
  78.         return 1;  
  79.     }  
  80.     return 0;  
  81. }  
  82.   
  83. int control_right (int a, int b, int c)   
  84. {  
  85.     int ar = a * a;  
  86.     int br = b * b;  
  87.     int cr = c * c;  
  88.     if(ar + br == cr)  
  89.     {  
  90.         return 1;  
  91.     }  
  92.     else if(ar + cr == br)  
  93.     {  
  94.         return 1;  
  95.     }  
  96.     else if(cr + br == ar)  
  97.     {  
  98.         return 1;  
  99.     }  
  100.     return 0;  
  101. }  
  102. int main(){  
  103.     int a,b,c;   
  104.     scanf("%d %d %d", &a,&b,&c);  
  105.         if(!is(a, b, c))  
  106.         {  
  107.             printf("Not Triangle\n");  
  108.         }  
  109.         else if(control_right(a, b, c))  
  110.         {  
  111.             printf("Right Triangle\n");  
  112.         }  
  113.         else if(control_obtuse(a, b, c))  
  114.         {  
  115.             printf("Obtuse Triangle\n");  
  116.         }  
  117.         else if(control_acute(a, b, c))  
  118.         {  
  119.             printf("Acute Triangle\n");  
  120.         }  
  121.       
  122.   system("PAUSE");    
  123.   return 0;  

停車費計算


問題描述:
假設某個停車場的費率是停車2小時以內,每半小時30元,超過2小時,但未滿4小時的部份,
每半小時40元,超過4小時以上的部份,每半小時60元,未滿半小時部分不計費。
如果您從早上10點23分停到下午3點20分,
請撰寫程式計算共需繳交的停車費。
本測資不考慮隔夜情況。

輸入說明:
輸入兩組時間,分別為開始與離開時間,24小時制。

輸出說明:輸出停車費。

輸入範例
10:23
15:20
輸出範例
340

  1. #include <stdio.h>  
  2. #include <stdlib.h>  
  3.   
  4. int main(int argc, char *argv[])  
  5. {  
  6.    int fhour, fmin, lhour, lmin, fee=0, diff_hour, diff_min, diff;  
  7.    scanf("%d:%d\n%d:%d",&fhour,&fmin,&lhour,&lmin);  
  8.    diff_hour = (lhour-fhour)*60;   
  9.    diff_min = lmin-fmin;   
  10.    diff = diff_hour + diff_min;   
  11.        if(diff>240)  
  12.          {  
  13.           fee += ((diff-240)/30)*60;  
  14.           diff = 240;  
  15.          }  
  16.        if(diff>120)  
  17.          {  
  18.           fee += ((diff-120)/30)*40;  
  19.           diff=120;  
  20.          }  
  21.        if(diff<=120)  
  22.          {  
  23.           fee += (diff/30)*30;  
  24.          }  
  25.          
  26.        printf("%d\n",fee);  
  27.   system("PAUSE");    
  28.   return 0;  
  29. }  

輸入兩個大於0的整數,計算其最大公因數及最小公倍數


hint: 輾轉相除法

範例輸入
25 15

範例輸出
5
75

  1. #include <stdio.h>  
  2. #include <stdlib.h>  
  3.   
  4. int main(int argc, char *argv[])  
  5. {  
  6.   int i, num1, num2;   
  7.   scanf("%d %d",&num1,&num2);  
  8.    
  9.  for(i=10;i>0;i--)  
  10.      {  
  11.             if(num1%i==0 && num2%i==0)  
  12.             {  
  13.              printf("%d\n",i);  
  14.      break;  
  15.              }  
  16.      }  
  17.   
  18.     for (i=1; (num1!=0) || (num2!=0); i++ )  
  19.   {  
  20.       if (i%num1==0 && i%num2==0)  
  21.          {  
  22.           printf("%d\n",i);  
  23.           break;  
  24.          }  
  25.   }  
  26.     
  27.   
  28.      
  29.   system("PAUSE");    
  30.   return 0;  
  31. }  

Binary Conversion

Problem Description Convert two binary numbers into two decimal numbers and compute their sum. Your program has to convert two binary number...