看板 Programming 關於我們 聯絡資訊
※ 引述《yzugsr (Bird)》之銘言: : ※ 引述《jeunder ()》之銘言: : : s = : : 0+1+2+3+4+5+6+7+8+9+ : : 10+11+12+13+14+15+16+17+18+19+ : : 20+21+22+23+24+25+26+27+28+29+ : : 30+31+32+33+34+35+36+37+38+39+ : : 40+41+42+43+44+45+46+47+48+49+ : : 50+51+52+53+54+55+56+57+58+59+ : : 60+61+62+63+64+65+66+67+68+69+ : : 70+71+72+73+74+75+76+77+78+79+ : : 80+81+82+83+84+85+86+87+88+89+ : : 90+91+92+93+94+95+96+97+98+99+ : : 100; : : // 呼~ 用 editor 複製貼上~ 有點累~ : : → jeunder:接下來換誰要貼? 弄個 metaprogramming 吧 61.64.225.27 01/03 00:01 : template <unsigned int n> : struct S { : enum { value = S<n-1>::value + n }; : }; : template<> : struct S <0> { : enum { value = 0 }; : }; : int _tmain(int argc, _TCHAR* argv[]) : { : cout<<S<100>::value; : return 0; : } : 我覺得不無聊啊.... : 要是你的程式在很critical的時候 要用到一堆不同整數的累加值、階乘值 : 還是在compile-time算完最快 : Metaprogramming的技巧可以看「C++設計新思維」 : 裡面的code比這嘔心幾百倍 XDrz 這樣不如直接寫 s = 5050; =___=||| 對真實的應用來說, 真的沒有意義, 我不是很讚同這種寫法... 可以計算的常數, 不見得要由complier幫你算... 就算要算 也不如寫成 #define S(n) (n+1)*n/2 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.195.25.91
sivle:前面有提到不用公式解了...140.113.214.133 01/06 22:17
avhacker:就算要用也不要用巨集,請用 inline func 140.123.19.235 01/07 12:43