пятница, 7 октября 2016 г.

Я сделал это!

Мне кажется, я сделал это!
Наконец-то на курсах по 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 - сейчас была бы возможность протестировать программу. ))

До        После

Комментариев нет:

Отправить комментарий