//串长方形统计 #include <iostream> #include <cmath> using namespace std; int main() { int n = 1,t,a1 = 0,b1 = 0,a2,b2; //a1、b1分别表示长、宽方向上已统计过的整数 float a,b,x,le,ca,cb; //a、b为长方形两条边 cout << "输入长方形的长和宽:" << endl; cin >> a >> b; le = sqrt(a*a + b*b); //le表示对角线的长 ca = a/le; //ca、cb分别表示长、宽两方 cb = b/le; //向的变化比例 for (x = 0;x < le;x+= 0.01) //x以微量0.01增长 { t = 0; a2 = x * ca; //a2、b2分别表示长、宽两方 b2 = x * cb; //向的增量 if(a2 >= a1 + 1){t = 1;a1 = a2;} if(b2 >= b1 + 1){t = 1;b1 = b2;} if(t == 1) n++; } cout << "对角线串过正方形个数为:" << n << endl; return 0; }