Мне кажется, я сделал это!
Наконец-то на курсах по C дошли до явного приведения типов и вроде как мне удалось дописать решение тестовой задачи.
Вот её условия:
Определить номер введённого треугольного числа. Числа положительные и начинаются с 1. Если введено число, не соответствующее условиям, программа завершается и возвращает 0.
Вот моё решение:
#include <stdio.h>#include <math.h>
int main (void)
{
long long int tn;
int kaka;
long double n;
if (scanf("%lli.%d", &tn, &kaka) !=1) return 0;
n = (sqrt(1 + 8 * (double)tn) - 1) / 2;
if (tn > 0 && tn <= 9223372036854775807 && ((long long int)n*((long long int)n+1)/2) == tn)
{
printf ("%lli\n", (long long int)n);
}
return 0;
}
Эх, надо было не отписываться от курса углублённого программирования на C - сейчас была бы возможность протестировать программу. ))