1 条题解
-
0
思路分析
1. 任务拆解:
- 读取周长L
- 找出所有边长为整数且周长为L的不等边三角形
- 统计满足条件的三角形个数
2. 关键点分析:
- 设三角形三边为i, j, k,满足i + j + k = L
- 三角形条件:
- i + j > k
- i + k > j
- j + k > i
- 不等边条件:不能是等边三角形(i ≠ j ≠ k)
- 为避免重复计数,要求i ≤ j ≤ k
3. 步骤规划:
- 读取周长n
- 外层循环枚举第一条边i(1到n/2)
- 内层循环枚举第二条边j(i到n)
- 计算第三条边k = n - i - j
- 检查k ≥ j(保证i ≤ j ≤ k)
- 检查三角形条件和不等边条件
- 统计满足条件的三角形个数
4. 代码对应:
int n,c=0;cin>>n;→ 读取周长并初始化计数器for(int i=1;i<n/2;i++)→ 枚举第一条边(最大边不会超过周长的一半)for(int j=i;j<n;j++)→ 枚举第二条边(不小于第一条边)int k=n-i-j→ 计算第三条边if(k>=j && !(i==j && j==k)&& i+j>k &&i+k>j && k+j>i)→ 检查所有条件c++→ 统计三角形个数cout<<c→ 输出结果
- 1
信息
- ID
- 80
- 时间
- 1000ms
- 内存
- 16MiB
- 难度
- 6
- 标签
- (无)
- 递交数
- 466
- 已通过
- 133
- 上传者