作者giive (lala)
看板CSSE
标题[闲聊] 被制约的头脑
时间Fri May 27 09:29:15 2005
从 10 加到 10000 的程式要怎麽写
10000个programer应该有9990个会用for或是类似的回圈写
int result=0;
for(int a = 10 ; a <=10000 ; a++){
result += a;
}
一定只能这样写吗??
int a =10 , b=10000 , result = 0;
result = (a+b)*(b-a+1)/2 ; -------> 小学的梯形运算
用for是得跑 9990次的加法运算
用梯形运算只需要 三次加法(减也算加) 一次整数乘 一次整数除
因为是除以2 , 应该还可以用shift的方式加速
有一股蛋蛋的忧伤
我的头脑有一种被制约的感触
--
不过如果上天肯在给我一次机会
我大概还是会用for去写吧
因为连乘跟连除都可以用:p
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.207.170
※ 编辑: giive 来自: 140.112.207.170 (05/27 09:33)
1F:推 Eventis:直觉的做法也未必就是不好啊:) 61.62.49.43 05/27
2F:→ Eventis:如果不是效能瓶颈,只用这麽一次 61.62.49.43 05/27
3F:→ Eventis:这麽缁珠必较又是何苦咧XD 61.62.49.43 05/27
4F:推 giive:不是这个意思 , 只是惊觉我的头脑已经想不出for以ꔠ140.112.207.170 05/27
5F:→ giive:外的作法 , 感觉有种被制约的感觉140.112.207.170 05/27
6F:推 KoalaLee:真的有那麽多人会这样写嘛 140.129.22.232 05/27
7F:推 Eventis:可能这个问题不那麽直接,不妨试试更常见的问题. 61.62.49.43 05/27
8F:→ Eventis:要将一个多维阵列有规律地填入特殊的值的作法:) 61.62.49.43 05/27
9F:推 Eventis:"一定要怎麽样"跟"一定不要怎麽样" 61.62.49.43 05/27
10F:→ Eventis:我不认为这两种态度是不同的事:) 61.62.49.43 05/27
11F:推 kevin190:看到你的程式,让我联想到ILP跟SIMD指令集加速 218.171.136.77 05/29