- 论坛徽章:
- 0
|
很久以前写的,拿出来晒一下。
- // 文件名:g_c_d.cpp
- // 作者:antigloss
- // 最后修改时间:05-10-21 1:40
- // 简介:使用 metaprogramming 方法编写求解最大公约数的程序
- template < unsigned long N, unsigned long n >
- struct g_c_d {
- static const unsigned long value = gcd< n, N % n >::value;
- };
- template < unsigned long N >
- struct g_c_d< N, 0 > { // specialization(模板具体化),用作终止递归
- static const unsigned long value = N;
- };
- template < unsigned long N, unsigned long n >
- const unsigned long g_c_d< N, n >::value;
- #include <iostream>
- int main()
- {
- std::cout << g_c_d< 1575, 235 >::value << "\nPress ENTER to quit...";
-
- std::cin.get();
- return 0;
- }
复制代码
昨晚死活发不出来,后来想想,原来是 Greatest Common Divisor 惹的祸 |
|