Project Euler

Project Euler 문제풀이를 통해 문제해결 능력과 프로그래밍 기법 향상

Project Euler Project Euler 문제풀이를 통해 문제해결 능력과 프로그래밍 기법 향상
본 토픽은 현재 준비중입니다. 공동공부에 참여하시면 완성 되었을 때 알려드립니다.

기본적인 알고리즘

편집 도중 HTML 과의 충돌로 인하여 연산자 등이 생략되어 표시될 수 있습니다.
복사 붙여넣기 보다는 읽어보고 이해한 후 직접 작성하길 권합니다.


 

소수 판별 함수
bool
 isPrime(int n)
{
                 int sqrtN = (int )sqrt((double)n); //제곱근
                 if ( n == 2 )
                                 return true ;
                 if ( n%2==0 || n==1)
                                 return false ;
                 for ( int i=3; i<sqrtN+1; i+=2)
                                 if ( n%i == 0 ) return false;
                 return true ; // 최종 true;
}
 

최대 공약수
int gcd( int a, int b)
{
                 if ( a == 0 )
                                  return b;
                 else
                                  return (a > b ) ? gcd(a%b,b) : gcd(b%a, a);
}
 
최소 공배수
int lcm(int a, int b)
{
                 return (a*b)/gcd(a,b);
}
 

구구단 - 반복문 1개
int row=2, col = 0;
while ( row < 10 )
      ( (col = ++col % 10) ) ? printf("%d x %d = %d\n", row, col, row*col) : row++;

Reverse(char *str)
void reverse(char *str)
{
                 int index = 0;
                 int length = 0;
                 char temp;
 
                 while ( str[length] ) length++;
                 while ( index < length/2 )
                {
                                temp = str[index];
                                str[index] = str[length-index-1];
                                str[length-index-1] = temp;
                                index++;
                }
}

String Compare

int compareStr(char *str1, char *str2)
{
                 while ( *str1 )
                {
                                 if ( *str1 < *str2 ) return -1;
                                 if ( *str1 > *str2 ) return 1;
                                str1++;
                                str2++;
                }
                 return ( *str2 ) ? -1 : 0;
}

댓글

댓글 본문
버전 관리
학생
현재 버전
선택 버전
graphittie 자세히 보기