Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /***************************************/
- /** 20150409 Exam 06 **/
- /** Maker : Yan **/
- /** E-Mail : [email protected] **/
- /** Date : 2015/04/09 am.11:40 **/
- /***************************************/
- #include <stdio.h>
- #include <stdlib.h>
- class GCD{
- private:
- int numData[100];
- int numDataCounter;
- int nowGCD;
- public:
- void formatData(){
- for (int i = 0; i < 100; i++)
- numData[i] = 0;
- numDataCounter = 0;
- nowGCD = -1;
- }
- void addData(int inputNum){
- numData[numDataCounter++] = inputNum;
- }
- int getGCD(){
- if (nowGCD == -1){
- for (int i = ((numData[0] > numData[1]) ? numData[1] : numData[0]); i > 0; i--)
- if ((numData[0] % i == 0) && (numData[1] % i == 0)){
- nowGCD = i;
- return nowGCD;
- }
- } else{
- for (int i = ((nowGCD > numData[numDataCounter - 1]) ? numData[numDataCounter - 1] : nowGCD); i > 0; i--)
- if ((nowGCD % i == 0) && (numData[numDataCounter - 1] % i == 0)){
- nowGCD = i;
- return nowGCD;
- }
- }
- }
- int returnNowGCD(int i){
- if (i == 1)
- return numData[0];
- else
- return nowGCD;
- }
- };
- int main(int argc, char const *argv[])
- {
- GCD gcd;
- gcd.formatData();
- for (int i = 0; ; i++){
- int inputNum = 0;
- if (scanf_s("%d", &inputNum) <= 0)
- return 0;
- else{
- gcd.addData(inputNum);
- if (i == 0)
- continue;
- else{
- int nowGCD = gcd.returnNowGCD(i);
- printf("[%3d & %3d] G.C.D is %3d.\n", nowGCD, inputNum, gcd.getGCD());
- }
- }
- }
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment