目录
题目
分析
木棍长度为 n
- 如果 n 为奇数,则无法组成矩形,故不成立
- 如果 n 小于等于5,同样无法组成矩形,故不成立
- 如果 n 为偶数,记 m = ,则有
- 若 m = 为偶数,则有 即个矩形,但是其中有一种为正方形,故共有 个
- 若 m = 为奇数,则有个(也可以直接用取整)
方法
如分析
代码如下
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int main()
{
int n;
while ( cin >> n )
{
if (n % 2 != 0)
cout<<0<<endl; //如果n为奇数,无法组成矩形,不成立
else if (n <= 5)
cout<<0<<endl; //如果n小于等于5,无法组成矩形,不成立
else if (n / 2 % 2)
{
int m = n / 2;
cout << (m - 1)/ 2 << endl; //如果n/2为奇数,那么就有(m-1)/2个
}
else cout << n / 4 - 1 << endl; //如果n/2为偶数,那么就有n/4个,但是有一种是正方形,故共有n/4-1个
}
return 0;
}
总结:注意总结数学规律。
数量总结
当长度为奇数,输出0。
当长度为偶数,输出ceil(n/4.0)-1即可。注意必须要加4.0,否则会出现错误。(变量转换类型)(数学归纳即可得出)
小tips:
1.取整函数ceil()
ceil功能:
返回大于等于表达式的最小整数。(即向上取整)
ceil--数学函数,同样要加数学头文件#include<math.h>
ceil返回大于等于表达式的最小整数,例如:float a=4.5 那么int ceil(a)=4