// 农民分土地问题递归实现
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;
}