ФЭНДОМ


Перебор

#include <stdio.h>
#include <math.h>

int tringle(int a, int b, int c)
{
    return a>abs(b-c) && a < b+c;
}

int main()
{
  unsigned a,b,c,N;
  unsigned long count=0;
  printf("Enter N: ");
  scanf("%u",&N);
  for(a=1;a<=N;a++)
     for(b=1;b<=N;b++)
         for(c=1;c<=N;c++)
             if(tringle(a,b,c)) count++;

  printf("%u tringles\n", count);
}

Оптимизированное решение

#include <stdio.h>

int main()
{
  int N,sum,diff;
  unsigned long count=0;
  printf("Enter N: ");
  scanf("%d",&N);

      for(diff=0;diff<N;diff++)
        for(sum=diff+2;sum+diff<=2*N;sum+=2)
          count += (diff == 0 ? 1 : 2) * (sum <= N ? sum-diff-1 : N-diff);
        
      printf("%lu tringles\n", count);
      return 0;
}