컴퓨터 시스템에서 이진수(binary number)는 2진법 체계로 표현되고, 10진수(decimal number)는 10진법 체계로 표현됩니다. 즉, 이진수는 밑(base)이 2인 수이며, 10진수는 밑이 10인 수입니다. 10진수와 이진수의 대응 관계 몇 가지 10진수와 이에 대응하는 이진수의 예는 다음과 같습니다. 10진수이진수 1001010 700111 2511001 1610000 C++ 변환 프로그램 예제 다음은 이진수를 10진수로, 10진수를 이진수로 변환하는 C++ 프로그램입니다. 예제 코드 #include &l
배열은 여러 개의 요소를 담을 수 있는 자료구조이며, 배열에서 가장 큰 요소란 나머지 모든 요소보다 값이 큰 요소를 의미합니다.예시로 이해하기다음 배열을 살펴보겠습니다.51724위 배열에서 가장 큰 요소는 7이며, 인덱스 2에 위치해 있습니다.그렇다면 배열에서 가장 큰 요소와 그 위치를 찾으려면 어떻게 해야 할까요? 전체 코드는 다음과 같습니다.전체 코드#include <iostream> using namespace std; int main() { int a[] = {4, 9,
소수(素數)란 1보다 큰 자연수 중에서 약수가 1과 자기 자신뿐인 수를 의미합니다. 가장 작은 소수로는 2, 3, 5, 7, 11, 13, 17 등이 있습니다. 두 구간 사이에는 여러 개의 소수가 존재할 수 있습니다. 예를 들어, 5와 20 사이에 있는 소수는 다음과 같습니다. 5, 7, 11, 13, 17, 19 이번 글에서는 두 구간 사이의 모든 소수를 찾아 화면에 출력하는 C++ 프로그램을 단계별로 살펴보겠습니다. C++ 예제 코드 #include <iostream> using namespace std; void
암스트롱 수(Armstrong Number)란 각 자릿수를 자릿수의 개수만큼 거듭제곱한 값들을 모두 더했을 때, 그 합이 원래의 수와 같아지는 수를 말합니다. 대표적인 예시는 다음과 같습니다.3 = 3^1153 = 1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153371 = 3^3 + 7^3 + 1^3 = 27 + 343 + 1 = 371407 = 4^3 + 0^3 + 7^3 = 64 + 0 + 343 = 407예를 들어 153은 세 자리 수이므로 각 자릿수를 세제곱하여 더하면 1 + 125 + 27 = 153이 되어
암스트롱 수(Armstrong Number)는 각 자릿수를 숫자의 전체 자릿수만큼 거듭제곱한 값들의 합이 원래 수와 같아지는 수를 말합니다.암스트롱 수의 대표적인 예시는 다음과 같습니다.3 = 3^1 153 = 1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153 407 = 4^3 + 0^3 + 7^3 = 64 + 0 + 343 = 407 1634 = 1^4 + 6^4 + 3^4 + 4^4 = 1 + 1296 + 81 + 256 = 1634위 예시에서 볼 수 있듯이, 세 자리 수 153은 각 자릿수를 세제곱하여 더하면
C++에서는 다양한 형태의 피라미드 패턴을 만들 수 있습니다. 이러한 패턴은 대부분 중첩 for 루프(nested for loop)를 활용해 구현합니다. 대표적으로 만들 수 있는 피라미드 패턴은 다음과 같습니다. 기본 피라미드 패턴 가장 기본적인 피라미드를 출력하는 코드는 다음과 같습니다. 예제 #include <iostream> using namespace std; int main() { int n = 6, i, j; for (i=1; i<=n; i++) { &nbs
소수(Prime Number)란 1보다 큰 자연수 중에서 약수가 1과 자기 자신뿐인 수를 말합니다. 가장 작은 소수들은 2, 3, 5, 7, 11, 13, 17 등입니다.두 구간 사이에는 여러 개의 소수가 존재할 수 있습니다. 예를 들어, 5와 20 사이에 있는 소수는 5, 7, 11, 13, 17, 19입니다.이번 글에서는 함수를 사용하여 두 구간 사이의 모든 소수를 찾아 화면에 출력하는 C++ 프로그램을 살펴보겠습니다.예제 코드#include <iostream> using namespace std; void prime
자연수(natural number)란 1부터 시작하는 양의 정수를 의미합니다. 자연수의 나열은 다음과 같습니다.1, 2, 3, 4, 5, 6, 7, 8, 9, 10……이 글에서는 재귀(recursion) 기법을 사용하여 첫 n개의 자연수 합을 구하는 C++ 프로그램을 소개합니다. 반복문(for, while) 없이도 함수가 스스로를 호출하는 방식으로 간결하게 문제를 해결할 수 있습니다.전체 예제 코드#include <iostream> using namespace std; int sum(int n)
어떤 수의 거듭제곱은 x^y 형태로 나타낼 수 있습니다. 여기서 x는 밑(base), 즉 거듭제곱의 대상이 되는 수이고, y는 지수(power)입니다. 예를 들면 다음과 같습니다. x = 2, y = 10이라고 가정 x^y = 1024 여기서 x^y는 곧 2^10을 의미합니다. 재귀(recursion)를 이용해 거듭제곱을 구하는 프로그램은 아래와 같습니다. 예제 코드 #include <iostream> using namespace std; int FindPower(int base, int power) { &
숫자들의 평균(Average)은 모든 숫자를 더한 뒤, 그 합을 숫자의 개수로 나누어 계산합니다.예를 들어 다음과 같이 계산할 수 있습니다.평균을 구할 숫자들: 10, 5, 32, 4, 9 숫자의 합 = 60 숫자의 평균 = 60 / 5 = 12배열로 평균을 계산하는 C++ 프로그램아래는 배열을 사용하여 숫자들의 평균을 계산하는 C++ 프로그램입니다.예제 코드#include <iostream> using namespace std; int main() { int n, i; fl
행렬이란 무엇인가?행렬(matrix)은 숫자들을 행(row)과 열(column) 형태로 배열한 직사각형 배열을 의미합니다. 행렬은 수학뿐만 아니라 컴퓨터 그래픽스, 데이터 분석, 머신러닝 등 다양한 분야에서 널리 활용됩니다.예를 들어, 아래와 같이 생긴 배열이 하나의 행렬입니다.4×3 행렬은 4개의 행과 3개의 열로 구성되며, 다음과 같이 표현할 수 있습니다.3 5 17 1 93 9 41 6 7두 행렬의 덧셈 조건두 행렬을 더하려면 반드시 같은 크기(행과 열의 개수가 동일)여야 합니다. 같은 위치에 있는 원소끼리 서로 더하는 것이
행렬(matrix)은 숫자들을 행(row)과 열(column)의 형태로 배열한 직사각형 배열입니다. 수학뿐만 아니라 그래픽 처리, 데이터 분석 등 다양한 분야에서 널리 활용되는 기본 개념입니다.예를 들어, 3×3 행렬은 아래와 같이 3개의 행과 3개의 열로 구성됩니다.8 6 3 7 1 9 5 1 9이 글에서는 C++의 다차원 배열(2차원 배열)을 사용하여 두 행렬을 곱하는 방법을 실제 코드와 함께 단계별로 살펴보겠습니다.전체 예제 코드#include<iostream> using namespace std; int main(
행렬(matrix)은 숫자들을 행(row)과 열(column)의 형태로 배열한 직사각형 구조입니다. 행렬의 전치(transpose)란 원래 행렬의 행을 열로, 열을 행으로 바꿔 만든 새로운 행렬을 의미합니다.예를 들어, 다음과 같은 3×3 행렬이 주어졌다고 가정해 보겠습니다.1 2 3 4 5 6 7 8 9이 행렬의 전치 행렬은 다음과 같습니다.1 4 7 2 5 8 3 6 9행렬 전치 C++ 예제 코드행렬의 전치를 구하는 C++ 프로그램은 다음과 같습니다.#include<iostream> using namespace std
문자열(string)은 널 문자(null character, \0)로 끝나는 1차원 문자 배열입니다. 문자열의 길이란 널 문자 앞에 위치한 문자들의 개수를 의미합니다.예를 들어 다음과 같습니다.char str[] = The sky is blue; 위 문자열의 문자 개수 = 15문자열의 길이를 구하는 프로그램은 다음과 같습니다.예제 1: while 루프 사용하기#include<iostream> using namespace std; int main() { char str[] = Apple;
문자열(string)은 널 문자(\0)로 끝나는 1차원 문자 배열입니다. 하나의 문자열 안에는 모음, 자음, 숫자, 공백이 다양하게 섞여 있을 수 있으며, 실무에서도 이런 요소들의 개수를 세어야 하는 경우가 종종 있습니다. 예를 들어 다음과 같습니다. String: There are 7 colours in the rainbow Vowels: 12 Consonants: 15 Digits: 1 White spaces: 6 아래는 문자열에 포함된 모음, 자음, 숫자, 공백의 개수를 구하는 C++ 프로그램입니다. 예제 코드 #includ
구조체(structure)는 서로 다른 데이터 타입의 항목들을 하나로 묶어 놓은 집합입니다. 다양한 자료형을 가진 복잡한 데이터 레코드를 만들 때 매우 유용하며, C++에서는 struct 키워드를 사용해 정의합니다.구조체의 기본 정의구조체는 다음과 같이 정의할 수 있습니다.struct employee { int empID; char name[50]; float salary; };위 예제처럼 구조체 안에는 정수, 문자열, 실수 등 여러 자료형을 자유롭게 포함시킬 수 있습니다.학생 정보를 저장하는 C++ 프로그램아
포인터(Pointer)는 변수가 저장된 메모리의 위치, 즉 주소를 저장하는 특수한 변수입니다. 다시 말해 포인터는 특정 메모리 공간을 가리키며, 그 메모리 위치에 저장된 값을 읽어오는 작업을 역참조(dereferencing)라고 부릅니다.예제 1: 포인터로 배열의 특정 요소 접근하기다음은 포인터를 사용하여 배열의 한 요소에 접근하는 C++ 프로그램입니다.#include <iostream> using namespace std; int main() { int arr[5] = {5, 2, 9, 4, 1}
컴퓨터 시스템에서 8진수(octal number)는 밑이 8인 8진법으로 표현되고, 10진수(decimal number)는 우리가 일상적으로 사용하는 밑이 10인 10진법으로 표현됩니다. 두 진법 사이의 변환은 프로그래밍에서 자주 마주치는 기본 개념 중 하나입니다. 아래 표는 대표적인 10진수와 이에 대응하는 8진수의 예시입니다. 10진수8진수10127010625311620 8진수를 10진수로 변환하고, 반대로 10진수를 8진수로 변환하는 C++ 프로그램은 다음과 같습니다. 예제 코드 #include <iostream>
문자열(string)은 널 문자(\0)로 끝나는 1차원 문자 배열입니다. 문자열의 역순(reversed string)이란 같은 문자열을 반대 순서로 나열한 것을 의미합니다. 예를 들어 다음과 같습니다.원본 문자열: Apple is red 뒤집힌 문자열: der si elppA아래는 재귀(recursion)를 사용하여 문자열 형태의 문장을 뒤집는 C++ 프로그램입니다.예제 코드#include <iostream> using namespace std; void reverse(char *str) { &nbs
문자열(string)은 널 문자(null character, \0)로 끝나는 1차원 문자 배열입니다. 두 문자열의 연결(concatenation)이란 두 문자열을 하나로 합쳐 새로운 문자열을 만드는 것을 의미합니다.문자열 1: Mangoes are 문자열 2: tasty 연결 결과: Mangoes are tasty예제 코드다음은 C++에서 두 문자열을 연결하는 프로그램입니다.#include <iostream> using namespace std; int main() { char str1[100] =