本讲我们介绍如何利用C语言去解决一个简单的数学问题,1+2+...+100=? 首先我们将问题简化一下,只求1+2=?相信每位同学都能很快的写出c语言的程序。按照第一讲的思路,我们先写程序模板,然后在指定的地方编写代码即可。 #include <stdio.h> int main(){ int a1 = 1; int a2 = 2; int sum =a1 + a2; return 0; } 是不是很快就写出了程序代码,既然1+2我们能求,那么1+2+...+100是不是也是同样的道理。 #include <stdio.h> int main(){ int a1 = 1; int a2 = 2; ... int a100 =100; int sum =a1 + a2+...+a100; return 0; } (上面的代码并不是完整的代码,其中的省略号部分需要大家自己补全。) 这就是我们解决1到100求和的第一种解法。是不是很有成就感!!! 上面的代码虽然能够解决问题,但是大家在编写代码的时候,是不是感觉有点恼火。 我们来分析一下以上代码的问题,最主要的问题在于我们需要定义101个整型变量,其中100个a1, a2,..., a100还有一个sum。那么是否可以减少变量定义的个数呢? 我们需要变量来保存1,2,...,100但是又不想使用a1,a2, ..., a100 这种方式。那么是否可以只使用1个变量就可以呢?即只定义一个变量i,就可以实现保存1,2,...,100。 在经过一番分析之后,我们发现可以利用C语言的循环结构来实现。 int i = 0; for( i = 1; i <= 100; i++) 上面的代码是不是就可以实现只使用一个变量i就能保存1,2,...,100。 以前我们需要100个变量来保存1,2,...,100现在我们只需要1个变量就可以了,是不是进步了很多。 那么接下来便是如何实现求和呢? 我们可以定义一个变量sum来保存当前最新的求和结果,然后去加i,并将求和的结果更新到sum,那么sum本质就是一个累加器。(如想了解更多,请关注《C语言教程累加器》) int i = 0; int sum = 0; for(i = 1; i <= 100; i++){ sum = sum +i; } 以上代码是不是很简洁了,那么这是不是最好的答案呢?还可以改进吗? 其实我们还可以有更好的方式,那就是直接使用数学公式就可以求解。 int sum = (1+100)*100 / 2; 直接一行代码就可以得到答案,这就是数学的魅力哈!所以小伙伴们,要不要好好学习数学!!! 总结 从上面的分析我们知道,在解决一个问题的时候,我们首先想到的大多是一些比较简单的解法,但是随着对问题分析的不断深入,我们可以不断的改进解法,最终会找到适合你自己的解决问题的方法。
这也上首页?!######什么首页?######这,不是初中生该知道的吗?######嗯嗯,是的。######其实还可以更简单:int sum=5050;######欢迎大家关注######高!!!######太高大上了,竟然还能这么写,惊为天人######见笑了,主要针对初学者的。######这小学就学过######是的是的######厉害######谢谢,都是面向初学者的一些知识。######要是这种水平能找到工作就好了。######不同的人看同样一个问题会有不同的见解。简单问题的背后也可以映射很多复杂的道理,就看你是怎么理解的了。谢谢回复######其实这是一个解决问题的思路和经验积累问题。一开始结合潜意识,用最直接最简单的方法来解决问题,得到想要的结果,之后考虑到这种方式比较麻烦,又找到其他更好的办法(循环),之后从算法角度给出了解决办法。我们在做项目的过程中是不断进步的,可能一开始只能给出第一种,有了足够的经验就会直接用公式了,这就是一种成长。######总结的非常好,谢谢
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。