编辑代码

#include <stdio.h>

// 农民分土地问题递归实现
int divideToSquare0(int length, int width) {
	if (length%width == 0) return width;
	return divideToSquare0(width, length%width);
}

// 农民分土地问题非递归实现
int divideToSquare1(int length, int width) {
	int nextWidth;
    while(length%width != 0){
        nextWidth = width;
        width = length % width;
        length = nextWidth;
    }
    return width;
}

int main() {
	printf("1680, 640, %d\n", divideToSquare0(1680, 640));
	printf("640, 1680, %d\n", divideToSquare0(640, 1680));
	printf("80, 40, %d\n", divideToSquare0(80, 40));
	printf("18, 3, %d\n", divideToSquare0(18, 3));
	printf("------\n");
	printf("1680, 640, %d\n", divideToSquare1(1680, 640));
	printf("640, 1680, %d\n", divideToSquare1(640, 1680));
	printf("80, 40, %d\n", divideToSquare1(80, 40));
	printf("18, 3, %d\n", divideToSquare1(18, 3));
	return 0;
}