diff --git a/SS2301-01/ss2301_01.cpp b/SS2301-01/ss2301_01.cpp index e69de29..fb56355 100644 --- a/SS2301-01/ss2301_01.cpp +++ b/SS2301-01/ss2301_01.cpp @@ -0,0 +1,20 @@ +#include + +// ベースケース: 単一の値を返す +template +T minimum(T t) { + return t; +} + +// 再帰的に最小値を取得する +template +T minimum(T first, Args... args) { + return std::min(first, minimum(args...)); +} + +int main() { + std::cout << "Minimum value is: " << minimum(5, 3, 9, 1, 8) << std::endl; // 1が出力される + std::cout << "Minimum value is: " << minimum(10, 20, 5, 15) << std::endl; // 5が出力される + std::cout << "Minimum value is: " << minimum(4.5, 3.5, 5.6, 7.8) << std::endl; // 3.5が出力される + return 0; +}