2017年10月6日 星期五

[C_MM38-易] 判斷3整數是否能構成三角形之三邊長(C++)

[C_MM38-易] 判斷3整數是否能構成三角形之三邊長

問題描述:
試撰寫一程式,判斷這三個整數是否能構成三角形的三個邊長(註 : 三角形兩邊長之和必須大於第三邊)。
輸入說明:
輸入為一行字串,包含了三個數值,每個數值以空白隔開。
三個數值分別為三角形的三個邊長。
輸出說明:
輸出符合 (fit) 或不符合 (unfit) 。


先把三個數字排大小,把最小的兩個邊相加,如果大於第三個邊,就符合 (fit),否則不符合 (unfit)

  1. #include <iostream>  
  2. using namespace std;  
  3. //[C_MM38-易] 判斷3整數是否能構成三角形之三邊長  
  4.    
  5. int main() {  
  6.     int a, b, c;  
  7.     while(cin >> a >> b >> c)  
  8.     {  
  9.         if(a > b)  
  10.         {  
  11.             if(b > c) //a > b > c  
  12.             {  
  13.                 if(b+c > a)  
  14.                 {  
  15.                     cout << "fit" << endl;  
  16.                 }  
  17.                 else  
  18.                 {  
  19.                     cout << "unfit" << endl;  
  20.                 }  
  21.             }  
  22.             else  
  23.             {  
  24.                 if(a > c) //a > c > b  
  25.                 {  
  26.                     if(b+c > a)  
  27.                     {  
  28.                         cout << "fit" << endl;  
  29.                     }  
  30.                     else  
  31.                     {  
  32.                         cout << "unfit" << endl;  
  33.                     }  
  34.                 }  
  35.                 else //c > a > b  
  36.                 {  
  37.                     if(a+b > c)  
  38.                     {  
  39.                         cout << "fit" << endl;  
  40.                     }  
  41.                     else  
  42.                     {  
  43.                         cout << "unfit" << endl;  
  44.                     }  
  45.                 }  
  46.             }  
  47.         }  
  48.         else //b > a  
  49.         {  
  50.             if(a > c) //b > a > c  
  51.             {  
  52.                 if(a+c > b)  
  53.                 {  
  54.                     cout << "fit" << endl;  
  55.                 }  
  56.                 else  
  57.                 {  
  58.                     cout << "unfit" << endl;  
  59.                 }  
  60.             }  
  61.             else //b, c > a  
  62.             {  
  63.                 if(b > c) //b > c > a  
  64.                 {  
  65.                     if(a+c > b)  
  66.                     {  
  67.                         cout << "fit" << endl;  
  68.                     }  
  69.                     else  
  70.                     {  
  71.                         cout << "unfit" << endl;  
  72.                     }     
  73.                 }  
  74.                 else //c > b > a  
  75.                 {  
  76.                     if(a+b > c)  
  77.                     {  
  78.                         cout << "fit" << endl;  
  79.                     }  
  80.                     else  
  81.                     {  
  82.                         cout << "unfit" << endl;  
  83.                     }  
  84.                 }  
  85.             }  
  86.         }  
  87.     }  
  88.     return 0;  
  89. }  


[C_MM34-易] 因數問題(C++)

[C_MM34-易] 因數問題

問題描述:試撰寫一程式,由鍵盤輸入一個正整數,然後求其所有的因數,例如輸入 24 ,則印出 24 的所有因數 1 、 2 、 3 、 4 、 6 、 8 、 12 與 24 。
輸入說明:輸入一個正整數。
輸出說明:輸出該數的因數。


  1. #include <iostream>  
  2. using namespace std;  
  3.    
  4. int main() {  
  5.     // [C_MM34-易] 因數問題  
  6.     int num;  //要找出此數字的因數
  7.     while(cin >> num)  
  8.     {  
  9.         for(int i = 1;i<=num;i++)  //1~num開始測試
  10.         {  
  11.             if(num % i == 0)  //可以被整除的就是因數
  12.             {  
  13.                 if(i == num)  
  14.                 {  
  15.                     cout << i << endl;  //當最後一個因數時,輸出的是換行
  16.                 }  
  17.                 else  
  18.                 {  
  19.                     cout << i << " ";   //否則都是i加上空白
  20.                 }  
  21.             }  
  22.         }  
  23.     }  
  24.     return 0;  
  25. }  


[C_MM32-易] Armstrong數(C++)

[C_MM32-易] Armstrong數

問題描述:所謂 " Armstrong數 " 是指一個三位數的整數,其各位數字之立方和等於該數本身。例如: 153 是一個  Armstrong數,因為 153 =1 3 + 53 + 33 。試撰寫一程式,判斷是否為  Armstrong數。
輸入說明:輸入一個三位數正整數。
輸出說明:是 阿姆斯壯數輸出 Yes ,不是 阿姆斯壯數輸出 No 的訊息。

去掉題目包裝,就只是問計算而已。

  1. #include <iostream>  
  2. #include <cmath>  
  3. using namespace std;  
  4.   
  5. int main() {  
  6.     int num;  //使用者要測試的數字
  7.     double Armstrong, a, b, c;  
  8.     while(cin >> num)  
  9.     {  
  10.         a = floor(num / 100);  //百位
  11.         b = num / 10 % 10;     //十位
  12.         c = num % 10;          //個位
  13.         Armstrong = pow(a,3)+pow(b,3)+pow(c,3);  //各個位數數字之立方和
  14.         if(num == Armstrong)  
  15.         {  
  16.             cout << "Yes" << endl;  
  17.         }  
  18.         else  
  19.         {  
  20.             cout << "No" << endl;  
  21.         }  
  22.     }  
  23.     return 0;  
  24. }  


[C_MM31-易] 計算1~N內能被2跟3整除,但不能被12整除的整數總和(C++)

[C_MM31-易] 計算1~N內能被2跟3整除,但不能被12整除的整數總和

  1. #include <iostream>  
  2. using namespace std;  
  3. //[C_MM31-易] 計算1~N內能被2跟3整除,但不能被12整除的整數總和  
  4. int main() {  
  5.     int N, sum;  //1~N之內的數字,sum是總和
  6.     while(cin >> N)  
  7.     {  
  8.         for(int i = 1;i<=N;i++)  //從1開始到N
  9.         {  
  10.             if(i % 2 == 0 && i % 3 == 0 && i % 12 != 0)  
  11.             //測試可以被2與3整除,但不能被12整除的整數
  12.             {  
  13.                 sum = sum + i;  //加總
  14.             }  
  15.         }  
  16.         cout << sum << endl;  
  17.         sum = 0;  
  18.     }  
  19.     return 0;  
  20. }  

[C_MM30-易] 質數判別(C++)

[C_MM30-易] 質數判別

  1. #include <iostream>    
  2. #include <cmath>    
  3. using namespace std;    
  4.     
  5. int main()    
  6. {    
  7.      int num, count;    
  8.      while(cin >> num)  
  9.      {  
  10.          for(int j = 1;j <= num;j++)    
  11.          {    
  12.               if(num % j == 0)    //計算可以被除盡的次數
  13.               {    
  14.                    count++;    
  15.               }    
  16.          }    
  17.          if(count == 2)    //等於二代表只有1和數字本身
  18.          {    
  19.               cout << "YES" << endl;    
  20.          }    
  21.          else  
  22.          {  
  23.             cout << "NO" << endl;    
  24.          }  
  25.          count = 0;    
  26.      }  
  27. }