Re: [問題] 面試遇到的程式問題,現在還想不出來(MTK)
※ 引述《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
→
01/06 22:17, , 1F
01/06 22:17, 1F
推
01/07 12:43, , 2F
01/07 12:43, 2F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 11 之 12 篇):