시리즈: C++
cpp
53 줄
· 업데이트 2026-04-03
math_utils.cpp
C++/Part4_現代CPP/Ch19_命名空間與多檔案專案/header_example/math_utils.cpp
// math_utils.cpp — MathUtils 類別的實作檔
// 編譯:g++ -std=c++17 -Wall -c math_utils.cpp
#include "math_utils.h"
#include <cmath>
double MathUtils::add(double a, double b) {
return a + b;
}
double MathUtils::subtract(double a, double b) {
return a - b;
}
double MathUtils::multiply(double a, double b) {
return a * b;
}
double MathUtils::divide(double a, double b) {
if (b == 0.0)
throw std::invalid_argument("除數不可為零");
return a / b;
}
long long MathUtils::factorial(int n) {
if (n < 0)
throw std::invalid_argument("階乘的參數不可為負數");
long long result = 1;
for (int i = 2; i <= n; ++i)
result *= i;
return result;
}
bool MathUtils::isPrime(int n) {
if (n < 2) return false;
if (n == 2) return true;
if (n % 2 == 0) return false;
for (int i = 3; i <= static_cast<int>(std::sqrt(n)); i += 2) {
if (n % i == 0) return false;
}
return true;
}
int MathUtils::gcd(int a, int b) {
a = std::abs(a);
b = std::abs(b);
while (b != 0) {
int temp = b;
b = a % b;
a = temp;
}
return a;
}
관련 글
C++
c
업데이트 2026-07-21
deviceAlpha.h
deviceAlpha.h — c source code from the C++ learning materials (C++/Mavis_Homework/FinalProject/deviceAlpha.h).
글 읽기 →
C++
c
업데이트 2026-07-21
finalproject.c
finalproject.c — c source code from the C++ learning materials (C++/Mavis_Homework/FinalProject/finalproject.c).
글 읽기 →
C++
cpp
업데이트 2026-07-21
finalproject.cpp
finalproject.cpp — cpp source code from the C++ learning materials (C++/Mavis_Homework/FinalProject/finalproject.cpp).
글 읽기 →
C++
c
업데이트 2026-07-21
deviceAlpha.h
deviceAlpha.h — c source code from the C++ learning materials (C++/Mavis_Homework/Lab8/deviceAlpha.h).
글 읽기 →
C++
c
업데이트 2026-07-21
lab8.c
lab8.c — c source code from the C++ learning materials (C++/Mavis_Homework/Lab8/lab8.c).
글 읽기 →
C++
cpp
업데이트 2026-07-21
lab8.cpp
lab8.cpp — cpp source code from the C++ learning materials (C++/Mavis_Homework/Lab8/lab8.cpp).
글 읽기 →