| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1099 人关注过本帖
标题:悟.编程——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
快速回复:悟.编程——4.我们为什么不用数学公式
数据加载中...
 
   



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

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