为了账号安全,请及时绑定邮箱和手机立即绑定

【C语言】1到100求和这样也可以?

标签:
C

本讲我们介绍如何利用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;

直接一行代码就可以得到答案,这就是数学的魅力哈!所以小伙伴们,要不要好好学习数学!!!

总结

从上面的分析我们知道,在解决一个问题的时候,我们首先想到的大多是一些比较简单的解法,但是随着对问题分析的不断深入,我们可以不断的改进解法,最终会找到适合你自己的解决问题的方法。

点击查看更多内容
6人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
4
获赞与收藏
31

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消