其实用纸举例写一遍就出来了:
将两个运算数的位置定下来:大的放在前面;
得到的差是下一个的因数。(先不管这些知道能用上就行)
开始推
n1 = 5; n2 = 7;
change...
n1 = 7; n2 = 5;
7 - 5 = 2

n1 = 2; n2 = 5
change...
n1 = 5; n2 = 2;
5 - 2 = 3;

n1 = 3; n2 = 2;
change...
3 - 2 = 1

n1 = 1; n2 = 2;
change...
n1 = 2; n2 = 1;
2 - 1 = 1;

n1 = 1; n2 = 1;
1 - 1 = 0;

#include<cstdio>
void change(int &n1, int &n2);
int main(){
    int n1, n2;
    scanf("%d %d", &n1, &n2);
    while(n1 != 0){
        change(n1, n2);
        n1 = n1 - n2;
    }
    printf("%d", n2);
    return 0;
}
void change(int &n1, int &n2){
    if(n2 > n1){
        int temp = n2;
        n2 = n1;
        n1 = temp;
    }
}