C언어/ProjectEuler

ProjectEuler 4번

Cand0 2017. 10. 19. 22:14

ProjectEuler4번.c

문제 :

앞에서부터 읽을 때나 뒤에서부터 읽을 때나 모양이 같은 수를 대칭수(palindrome)라고 부릅니다.

두 자리 수를 곱해 만들 수 있는 대칭수 중 가장 큰 수는 9009 (= 91 × 99) 입니다.

세 자리 수를 곱해 만들 수 있는 가장 큰 대칭수는 얼마입니까?


해설 :

첨부파일에 있음.


거의 노가다 형식으로 풀었는데 다른사람 풀이를 보니...ㄷ...

훨씬 쉽게 나와있...

다른사람꺼 소스 이해하는데만 한 30분 넘게 걸린듯...

다른사람 소스)


#include <stdio.h>

int main()
{
int temp,num=0,answer,a=8,b;
for (int i = 100; i < 1000; i++)
{
for (int j = 100; j < 1000; j++)
{
temp = i*j;
b = i*j;
while (temp > 0)
{
answer = temp % 10;
temp=temp / 10;
num = num * 10 + answer;
}
if (b == num&&a<b)
{
a = num;
}
num = 0;
}
}
printf("%d", a);
return 0;
}



--내가 한 풀이보다 훨씬 쉽게 코딩하였음--