a, b, c, d 네 수를 찾아야 하는데, 이 네 수는 중복이 되어도 상관없다. 즉, a = b = c = d = 1일 수도 있다.또한, 네 수가 모두 존재할 필요도 없다.이럴 경우에, 가능한 모든 경우의 수를 구하는 것이기 때문에 a = 1, b = c = d = 0의 경우부터 하나씩 찾아낸다.정석대로면 4중 for문을 사용해 a, b, c, d의 값을 찾아야 하지만 문제에서 말했듯이 시간초과에 걸릴 수 있으므로a, b, c를 통해 d를 계산해내는 방식을 통해 for문을 하나 줄인다.하나씩 찾을 때, 네 개의 숫자가 중복되는 경우(1, 1, 3, 5와 3, 1, 5, 1 등)를 피하기 위해 a ≤ b, b ≤ c, c ≤ d라는 조건을 건다. #include #include <..
(http://59.23.113.171/30stair/lagrange/lagrange.php?pname=lagrange&stair=4) 구하는 네제곱수가 a + b + c + d = num(입력값) 이면, a + b + c로 인해 나머지 d를 구할 수 있으므로 3중포문을 사용한다. 식이 복잡해지므로 #deine으로 매크로 상수를 정의했다.매크로 상수란 소스를 컴파일 하기전 실제값을 치환하는 것이고, 상수에 이름을 붙여서 기억하게 쉽게 만드는 용도이다.실제로 출력되어야 하는 값은 cnt(가능한 가짓수, 출력값)변수이다. 이 값이 증가되는 경우는 최대 4가지, M1 == num, M2 == num, M3 == num, M3 + D == num아래의 코드는 제곱수를 하나씩 찾아가면서 경우의 수를 찾는다. 제곱..