본문 바로가기

분류 전체보기

(158)
[C 언어] 최대공약수 구하기 (정보처리기사 외) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 #include int Eucledian(int a, int b) // a > b { return a % b ? Eucledian(b, a%b) : b; // 삼항 연산자 사용 } int main() { int num1, num2; // num1 > num2; int GCD; scanf("%d %d", &num1, &num2); GCD = Eucledian(num1, num2); printf("GCD: %d", GCD); return 0; } Colored by Color Scripter cs
[C 언어] 소수의 합 구하기 (while, if) (정보처리기사 외) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 #include #include // sqrt함수로 제곱근 사용 권한 있음. int prime_generator(int p) { // 만약 어떤 수 p가 소수라면 // 1을 제외한 숫자이면서 sqrt(p) 보다 작거나 같은 수들이 // p의 약수가 아니면 된다. // 왜냐하면, p = sqrt(p) * sqrt(p)로 표현 가능하고, 만약 1이 아닌 약수가 존재한다면 // 약수 하나는 최소한 sqrt(p)보다 작을 것이기 때..
[C 언어] 제곱근을 활용한 소수 판별 (while, if) (정보처리기사 외) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 #include #include // sqrt함수로 제곱근 사용 권한 있음. int main() { // 만약 어떤 수 p가 소수라면 // 1을 제외한 숫자이면서 sqrt(p) 보다 작거나 같은 수들이 // p의 약수가 아니면 된다. // 왜냐하면, p = sqrt(p) * sqrt(p)로 표현 가능하고, 만약 1이 아닌 약수가 존재한다면 // 약수 하나는 최소한 sqrt(p)보다 작을 것이기 때문이다. int p; printf("소수인지 판별하고 싶은 숫자를 입력하세요: "); scanf("%d", &p); int det = sqrt(p); int i =..
[c 언어] 재귀함수를 활용한 피보나치 수열(1+1+2+3+5+8+13+…)의 합계(while, for, if) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 #include unsigned long long fibonacci(unsigned int n) // 재귀함수로 fibonacci 반환 함수를 만들어 준다 // unsigned long long을 큰 수의 fibonacci 수열 반환에 대비한다. { if ((n == 1) || (n == 2)) return 1; else return fibonacci(n-1) + fibonacci(n-2); } int main() { unsigned long long sum = 0; unsigned int i = 1; unsigned int n; scanf("%d", &n..
[C] 1!+2!+3!+4!+5!+…+10!의 합계 (do~while) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 #include unsigned long long factorial(unsigned int n) // 재귀함수로 factorial을 만들어 준다 // unsigned long long을 선언해서 factorial의 큰 수 반환에 대비한다. // 음수 factorial은 고려하지 않을 것이므로 자료형을 unsigned 로 준다. { if (n == 1) return 1; else return n * factorial(n-1); } int main() { unsigned long long sum = 0; unsigned int i = 1; unsigned in..
[C] 1+2+4+7+11+16+22+…로 증가하는 수열 (do~while) (정보처리기사 외) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 #include int main() { int middle_sum = 1; int final_sum = 1; int i = 1; int n; scanf("%d", &n); do { middle_sum += i; // 더하는 값이 2부터 시작되게 한다. final_sum += middle_sum; i++; } while (i
[C] -(1/2)+(2/3)-(3/4)+(4/5)-(5/6)…-(99/100)의 합계 (do~while, if) (정보처리기사 외) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 #include int main() { double sum = 0; int flag[2] = {1, -1}; int i = 1; do { if (i % 2 != 0) { sum += ((double) i / (double) (i+1)) * flag[1]; } else { sum += ((double) i / (double) (i+1)) * flag[0]; } i++; } while (i
[C] 수열 합 1-2+3-4+.....+99-100 (정보처리기사 외) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 #include int main() { int i; int sum = 0; int flag[2] = {1, -1}; for (i=1; i