[C/E] 等差數列求和

來源:互聯網
上載者:User

標籤:style   blog   color   使用   io   for   div   amp   

題目:要求給定一個整數 N,求從 0 到 N 之間所有整數相加之和。

 

解1:使用 for 迴圈依次遞加。

#include <stdio.h>int main(void){    int x;    printf("Input an integer:\n");    scanf("%d", &x);    printf("sum=%d\n", sum(x));    return 0;};int sum(int x){    int i, result=0;    for(i=0; i<=x; i++){        result+=i;    }    return result;};

 

解2:題目所求實際上為一個首項為 0,末項為 N,公差為 1 的等差數列,根據等差求和公式:S[n] = N * (N + 1) / 2 或者 S[n] = (a[1] + a[n]) * n / 2。

#include <stdio.h>int main(void){    int x;    printf("Input an integer:\n");    scanf("%d", &x);    printf("sum=%d\n", sum(x));    return 0;};int sum(int x){    return (x + 1)*x/2;};

 

輸入與輸入:

$ ./a.out Input an integer:100sum=5050

 

等差數列公式

 

an = a1 + (n - 1)d

Sn = na1 + n(n-1)d/2

 

n 表示數列長度。

a1 表示首項。

d 表示公差。

Sn 表示求 n 項之和。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.