作者WPC001 ()
站内Programming
标题Re: [问题] 面试遇到的程式问题,现在还想不出来(MTK)
时间Sun Jan 6 21:34:30 2008
※ 引述《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
1F:→ sivle:前面有提到不用公式解了...140.113.214.133 01/06 22:17
2F:推 avhacker:就算要用也不要用巨集,请用 inline func 140.123.19.235 01/07 12:43