Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Ветеран


Сообщения: 3320
Благодарности: 916

Профиль | Отправить PM | Цитировать


quaker_strelok в чём сложность в математической части или/и в части реализации?
В задании прямоугольный треугольник, это ж хрестоматийный случай по теореме Пифагора: Квадрат одной из сторон равен сумме квадратов других сторон.

http://ru.wikipedia.org/wiki/Теорема_Пифагора
Надеюсь теперь с математикой ясность. Теперь насчёт реализации. Если сильно напрягаться не хочется, пускай проц напрягается, можно задействовать банальный перебор, с помощью циклов.
Код: Выделить весь код
#include <stdio.h>
int main(int argc, char* argv[])
{
int p, pMax=0;
	for (p=1;p<1000;p++)
	{
		//p=120;
		printf("\nCurrent p=%i ",p);
		for (int a=1; a<p; a++)
			for (int b=1; b<p; b++)
				for (int c=1; c<p; c++)
					//if (p==(a + b + c) && a < (b + c) && b < (c + a) && c < (a + b))
					if (p==(a + b + c) && (a*a == (b*b + c*c) || b*b == (c*c + a*a) || c*c == (a*a + b*b)))
					{
						printf("{a=%i b=%i c=%i} ",a,b,c);
						pMax=p;
					}
	}
			printf("p max = %i",pMax);
	return 0;
}
Данный код считает долго. Код не делает выборку совпадений значений сторон, но в разной последовательности. В тексте программы закомментировано условия для всех прямоугольников.
Для p<1000 ответ будет таков
Цитата:
Current p=996 {a=249 b=332 c=415} {a=249 b=415 c=332} {a=332 b=249 c=415} {a=332
b=415 c=249} {a=415 b=249 c=332} {a=415 b=332 c=249}
...
p max = 996
Если подходит с делом, то нужно составлять систему уравнений, среди прочих условий которой будут присутствовать теорема Пифагора и заданное условие задачи.

Последний раз редактировалось Admiral, 26-11-2008 в 02:31.

Это сообщение посчитали полезным следующие участники:

Отправлено: 01:35, 26-11-2008 | #2