zj3t

email: euntaejang@gmail.com

Latest Posts

Project Euler-4

By 오후 12:06

문제에서 세 자리 수라고 줬지만 모든 수에 해당도록(조금 더 어렵게) 풀기 위해 좀 시간이 걸렸지만 뿌듯하네요ㅎㅎ

#include <stdio.h>

int pows(int x, int y) //제곱함수 정의
{
int result = 1;

for (int i = 0; i < y; i++)
{
result *= x;
}
return result; 
}

int main()
{
int i, j = 0; //곱셈을 할 for문에서 사용 할 변수
int len = 0; //자릿수를 구할 변수
int count = 0; //각 자릿수를 비교하기 위해 정의한 변수
int result; //곱셈의 결과를 저장할 변수
int temporary; //곱셈의 값을 일시적으로 저장할 변수
int arrays[] = { 0, }; //곱셈결과를 자릿값을 저장할 배열
int max = 0; //최대값을 저장할 변수

for (i = 100; i < 1000; i++) {
for (j = 100; j < 1000; j++) {
result = i*j; 

temporary = result; //길이를 구하기위에 값을 임시적으로 저장 

count = 0;
len = 0; //길이 초기화

while (result){ 
len++;
result /= 10;
}//곱셈결과의 자리수 구하는 루프

result = temporary; //값을 다시 반환

for (int h = 0; h < len; h++) {
arrays[h] = (result % (pows(10,(h+1)))) / pows(10,h); 
} //각 자깃값을 배열에 저장하는 루프

for (int h = 0; h < len / 2; h++) { //비교 루프
if (arrays[h] == arrays[len - 1 - h]) { 
count++;
if (count == len / 2)
{
if (max < result) //최댓값만 구하기 위하여 조건문 설정 
{
max = result;
}
}
}
}
}
}
printf("max: %d\n", max); //최댓값 출력
return 0;
}

You Might Also Like

0 개의 댓글