1 条题解

  • 0
    @ 2025-10-29 15:24:24

    思路分析

    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
    上传者