[문제1] 양의 정수 n을 입력 받아, 1부터 n까지의 합을 구하는 프로그램
#include<stdio.h> int sum(int n){ if (n == 1){ return 1; } else{ return n + sum(n - 1); } } void main(){ int n; scanf("%d", &n); printf("%d\n", sum(n)); } |
[문제2] 양의 정수를 입력 받아, 각 자리의 수를 높은 자릿수부터 출력하는 프로그램
#include<stdio.h> void mod(int n){ if (n >= 10){ mod(n / 10); printf("%d\n", n % 10); } else{ printf("%d\n", n); } } void main(){ int n; scanf("%d", &n); mod(n); } |
[문제3] 양의 정수를 입력 받아, 각 자리의 수를 낮은 자릿수부터 출력하는 프로그램
#include<stdio.h> void mod(int n){ if (n >= 10){ printf("%d\n", n % 10); mod(n / 10); } else{ printf("%d\n", n); } } void main(){ int n; scanf("%d", &n); mod(n); } |
[문제4] n개의 정수를 입력 받아 최댓값을 구하는 프로그램(n <= 20)
#include<stdio.h> int Max(int *arr, int n){ if (n == 1){ return *arr; } else{ if (*(arr + n - 1) > Max(arr, n - 1)){ return *(arr + n - 1); } else{ return Max(arr, n - 1); } } } void main(){ int n, arr[20] = { 0 }; scanf("%d", &n); for (int i = 0; i < n; i++){ scanf("%d", &arr[i]); } printf("%d\n", Max(arr, n)); } |
[문제5] 원반의 개수 n을 입력받아, 하노이 탑 문제를 푸는 프로그램
#include<stdio.h> void hanoi(int n, char A, char B, char C){ if (n > 1){ hanoi(n - 1, A, C, B); printf("%c %c\n", A, C); hanoi(n - 1, B, A, C); } else{ printf("%c %c\n", A, C); } } void main(){ int n; scanf("%d", &n); hanoi(n, 'A', 'B', 'C'); } |
[문제6] 두 개의 양의 정수를 입력받아, 이 두 정수의 최대공약수를 유클리드 호제법으로 출력하는 프로그램
#include<stdio.h> int gcd(int n1, int n2){ if (n1 < n2) { if (n1 == 0) { return n2; } else { return gcd(n1, (n2 % n1)); } } else if (n1 > n2){ if (n2 == 0){ return n1; } else{ return gcd(n2, (n1 % n2)); } } else { return n1; } } void main(){ int n1, n2; scanf("%d", &n1); scanf("%d", &n2); printf("%d\n", gcd(n1, n2)); } |
[문제7] 공백 없는 영어 문자열 하나를 입력받아, 특정 문자가 몇 번 나타나는지 검사하는 프로그램
#include<stdio.h> #include<string.h> int Check(char *str, int len, char char1){ if (len != 0){ if (*(str + strlen(str) - 1 - len) == char1) { return 1 + Check(str, len - 1, char1); } else { return 0 + Check(str, len - 1, char1); } } else{ if (*(str + strlen(str) - 1) == char1) { return 1; } else { return 0; } } } void main(){ char str[100]; char char1; gets(str); char1 = getchar(); printf("%d\n", Check(str, strlen(str) - 1, char1)); } |
'알고리즘' 카테고리의 다른 글
[알고리즘] 기초 데이터구조(2) - 예제 (0) | 2018.11.26 |
---|---|
[알고리즘] 기초 데이터구조(1) - 설명 (2) | 2018.11.25 |
[알고리즘] 재귀(1) - 설명 (0) | 2018.11.24 |
[알고리즘] 알고리즘 분석(2) - 예제 (0) | 2018.11.23 |
[알고리즘] 알고리즘 분석(1) - 설명 (0) | 2018.11.23 |