一个问题代码写不来求助dalao

目前有一个长度为 n 的木棍,当做直角三角形的斜边。A,B,C要从许多整数长度的木棍中选出三根,分别长为 a, b, c。 现在,蒜头君和花椰妹的木棍组成一条直角边长度为 a + b,白菜君组成另外一条直角边 c,并且要求 a + b ≤c。请问一共可以有多少种取木棍的方案。 提示:a = 3, b = 4 与 a = 4, b = 3 算作同一种方案。

#include <stdio.h>

int main()
{
    int n;
    int cnt = 0;
    scanf("%d", &n);
    for (int a = 1; a < n; a++)
        for (int b = a; b < n - a; b++)
            for (int c = 1; c < n; c++)
            {
                if ((a+b)*(a+b)+c*c==n*n)
                {
                    printf("a=%d b=%d c=%d\n", a, b, c);
                    cnt++;
                }
            }
    printf("一共有%d种方案", cnt);
    return 0;
}

5
a=1 b=2 c=4
a=1 b=3 c=3
a=2 b=2 c=3
一共有3种方案Press any key to continue . . .

10
a=1 b=5 c=8
a=1 b=7 c=6
a=2 b=4 c=8
a=2 b=6 c=6
a=3 b=3 c=8
a=3 b=5 c=6
a=4 b=4 c=6
一共有7种方案Press any key to continue . . .