不用迴圈和遞迴計算1+2+3+...+100的值
阿新 • • 發佈:2019-02-04
利用類的靜態成員變數以及類的建構函式實現。
程式碼:
#include <iostream> using namespace std; class A { public: A(); ~A(){}; static int getSum(); private: static int n; static int sum; }; int A::n = 0; int A::sum = 0; A::A() { n++; sum += n; } int A::getSum() { return sum; } int main() { A *pa = new A[100]; delete [] pa; cout<<A::getSum()<<endl; getchar(); }
利用模板超程式設計:
REF:#include <iostream> template<unsigned int N> struct A { enum { value = A<N-1>::value + N }; }; template<> struct A<1> { enum { value = 1 }; }; int main() { std::cout<<A<100>::value<<std::endl; getchar(); return 0; }
1,http://bbs.csdn.net/topics/290013313