只需要判断两个数谁大谁小,用大的除以小的,得到的值即为当前能得到最大正方形的个数,再用大的减去小的*个数,之后再循环判断
#include<bits/stdc++.h> using namespace std; int main(void){ int a,b; int ans = 0; cin >> a >> b; while(!(a <= 0 || b <= 0)){ int temp = 0; //逻辑很简单,如果a>b,就用a除b,得到的值就为边长=b时正方形的个数 if(a>=b){ temp = a / b; a -= b*temp; ans += temp; }else{//b>a,进行相同操作 temp = b / a; b -= a*temp; ans += temp; } } cout << ans; }