标题:悟.编程——4.我们为什么不用数学公式
取消只看楼主
多维数组
Rank: 1
等 级:新手上路
帖 子:238
专家分:0
注 册:2006-8-16
 问题点数:0 回复次数:0 
悟.编程——4.我们为什么不用数学公式

在看这一点前,我希望大家编写一个程序:
求出1+2+3+......+100的值,并输出

写完了吗?我想你写的程序的算法会和我的差不多:
#include <stdio.h>

int main()

   int sum=0;
for(int i=1; i<=100; ++i)
{
sum+=i;
}
printf("1+2+......+100=%d", sum);
return 0;
}

但我可以告诉你,你我的算法并不是最好的算法,下面我们看一看另一种算法:
#include <stdio.h>

int main()
{
  int sum;
  sum=(1+100)*100/2;
printf("1+2+......+100=%d", sum);
return 0;
}

是不是恍然大悟,我问过几位同学,他们的算法都是第一种,我最初也是。但我们为什么不用数学公式呢?我们为什么不借助数学的力量呢?

参考资料:
C语言高效编程的四大绝招

2007年7月20日:
最近,我在XX论坛中看到一些大侠的评论,说得很好:为什么不直接输出5050呢?(如下)
#include <stdio.h>
int main()
{
printf("5050\n"); //PRINT 1+2+3+......+99+100
return 0;
}
这似乎可以追求到更高的效率。但我还是要再次发表自己的意见:在效率上,直接输出可能会略胜一筹,但C标准允许常量表达式在编译期间确定值,也就是说-------大多数情况下直接把值计算出来的效率是不会高的,而且这样还会使你的程序变得难阅读。所以建议大家使用还是写常量表达式而不写值。

搜索更多相关主题的帖子: 数学 公式 int sum 算法 
2007-08-30 21:21



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-166595-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.149831 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved