【题解】《C语言入门》数列求和

185 阅读2分钟

本文已参与[新人创作礼]活动,一起开启掘金创作之路

数列求和对按照一定规律排列的数进行求和。求Sn实质上是求{an}的通项公式,应注意对其含义的理解。常见的方法有公式法错位相减法倒序相加法、分组法、裂项法数学归纳法、通项化归、并项求和。数列是高中代数的重要内容,又是学习高等数学的基础。在高考和各种数学竞赛中都占有重要的地位。数列求和是数列的重要内容之一,除了等差数列等比数列有求和公式外,大部分数列的求和都需要有一定的技巧。

  • \

文章目录


整型范围


 

剑指64.求1+2...+n

  https://leetcode-cn.com/problems/qiu-12n-lcof/


     1 . 当我拿到题目时,发现这不是简单嘛,最后一看好家伙限制了这么多条件,连乘除等差公式都不能用,直接懵了,想了半天不过还好做出来了。

 



int sumNums(int n){
    int sum=0;
while(n){    //当n!=0时进行循环,当n==0时循环结束
    
    sum+=n;
    n--;
}return sum;
}

    2.来看一下 官方这种解法太精辟了,属实没想到。


int sumNums(int n)
 {
     n&&(n+=sumNums(n-1));  //当n!=0时执行后面这个条件 ——> n+=sumNums(n-1),这个条件是变相的令n减了1;
  return n; }

 

Sum Problem


    1.好家伙,什么??英语???对于我这个英语菜鸡不得不找个翻译

 


    2. 我认为本题的难度在输入一系列整数,需要注意两点

        <1>.while (~scanf_s("%d", &n))

        <2>. int sum=0的位置,是在while循环的下面

 来看代码

int main() {
    int n;
    while (~scanf_s("%d", &n)) {       //当不输入值时退出循环
        int sum = 0;
        for (int i = 1; i <= n; i++) {
            sum += i;
        }
        printf("%d\n\n", sum);//注意,题目要求每个输出要间隔一行,所以多加了一个\n
    }
   
}