Algorithms

인수분해(insubunE)

Ohjeonghak 2014. 9. 4. 14:56
반응형




위의 근의 공식을 이용해서 푼다.


(-b ± sqrt( pow(b,2) - 4*a*c ) ) / 2*a


x^2 + ax + b 의 식에서 a와 b가 입력으로 주어질때

/*
근의공식

ax^2 + bx + c 일때

(-b+_sqrt(pow(b,2)-4*a*c))⁄2*a

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

int main()
{
	int a = 0, b = 0;
	int num1, num2;

	scanf("%d %d", &a, &b);

	num1 = (-a + (int)(sqrt(pow((double)a, (double)2) - (double)(4 * b)))) ⁄ 2;
	num2 = (-a - (int)(sqrt(pow((double)a, (double)2) - (double)(4 * b)))) ⁄ 2;

	if (num1 + num2 == -a && num1*num2 == b)
	{
		if (num1<0 && num2<0)
			printf("(x%d)(x%d)\n", num1, num2);
		else if (num1>0 && num2<0)
			printf("(x+%d)(x%d)\n", num1, num2);
		else if (num1>0 && num2>0)
			printf("(x+%d)(x+%d)\n", num1, num2);
		else if (num1<0 && num2>0)
			printf("(x%d)(x+%d)\n", num1, num2);
	}
	else
		printf("impossible\n");

	return 0;
}

반응형

'Algorithms' 카테고리의 다른 글

[Queue] Linked List 방식 환형 큐(환형 링크드 리스트)  (0) 2016.08.17
하노이탑  (0) 2014.09.04
최대 공약수(GCD), 최소 공배수(LCM)  (0) 2014.09.03
[정올]동전 자판기  (0) 2014.09.01
[정올]저글링 방사능 오염  (0) 2014.09.01