Holey_yan

20150409_KUAS_VisualC++_Exam06

Apr 9th, 2015
269
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.54 KB | None | 0 0
  1. /***************************************/
  2. /** 20150409 Exam 06                  **/
  3. /** Maker  : Yan                      **/
  4. /** E-Mail : [email protected] **/
  5. /** Date   : 2015/04/09 am.11:40      **/
  6. /***************************************/
  7.  
  8. #include <stdio.h>
  9. #include <stdlib.h>
  10.  
  11. class GCD{
  12. private:
  13.     int numData[100];
  14.     int numDataCounter;
  15.     int nowGCD;
  16.  
  17. public:
  18.     void formatData(){
  19.         for (int i = 0; i < 100; i++)
  20.             numData[i] = 0;
  21.         numDataCounter = 0;
  22.         nowGCD = -1;
  23.     }
  24.  
  25.     void addData(int inputNum){
  26.         numData[numDataCounter++] = inputNum;
  27.     }
  28.  
  29.     int getGCD(){
  30.         if (nowGCD == -1){
  31.             for (int i = ((numData[0] > numData[1]) ? numData[1] : numData[0]); i > 0; i--)
  32.                 if ((numData[0] % i == 0) && (numData[1] % i == 0)){
  33.                     nowGCD = i;
  34.                     return nowGCD;
  35.                 }
  36.         } else{
  37.  
  38.             for (int i = ((nowGCD > numData[numDataCounter - 1]) ? numData[numDataCounter - 1] : nowGCD); i > 0; i--)
  39.                 if ((nowGCD % i == 0) && (numData[numDataCounter - 1] % i == 0)){
  40.                     nowGCD = i;
  41.                     return nowGCD;
  42.                 }
  43.         }
  44.     }
  45.  
  46.     int returnNowGCD(int i){
  47.         if (i == 1)
  48.             return numData[0];
  49.         else
  50.             return nowGCD;
  51.     }
  52. };
  53.  
  54. int main(int argc, char const *argv[])
  55. {
  56.     GCD gcd;
  57.     gcd.formatData();
  58.     for (int i = 0; ; i++){
  59.         int inputNum = 0;
  60.         if (scanf_s("%d", &inputNum) <= 0)
  61.             return 0;
  62.  
  63.         else{
  64.             gcd.addData(inputNum);
  65.             if (i == 0)
  66.                 continue;
  67.             else{
  68.                 int nowGCD = gcd.returnNowGCD(i);
  69.                 printf("[%3d & %3d] G.C.D is %3d.\n", nowGCD, inputNum, gcd.getGCD());
  70.             }
  71.         }
  72.     }
  73.     system("pause");
  74.     return 0;
  75. }
Advertisement
Add Comment
Please, Sign In to add comment