2015-08-09 28 views
-6

它在Turbo C3編譯,算術級數的公式如何工作?

有人可以解釋如何SUM公式的作品? 因爲,我無法找到谷歌任何解釋這個公式

#include<stdio.h> 
#include<conio.h> 
#include<dos.h> 
int main() 
{ 
int ctr, limit, sum; 
clrscr(); 
ctr=0; 
printf("limit:"); 
scanf("%d",&limit); 
for(ctr=1;ctr<=limit;++ctr) 
{ 
delay(100);printf("%d",ctr); 
printf("n"); 
} 
sum=(limit*(2*1+(limit-1)*1))/ 2; 
printf("The Sum of all # is:",sum); 
getch(); 
} 

對不起我的noob問題提前

感謝

+2

由於變量限制未初始化,程序具有未定義的行爲。討論這個愚蠢的計劃毫無意義。 –

+1

'scanf(「%d」,&ctr);' - >'scanf(「%d」,&limit);' – BLUEPIXY

+0

對不起,我輸入錯了, 我現在要編輯它 –

回答

1

此:

sum=(limit*(2*1+(limit-1)*1))/ 2; 

實際上是與此公式相同:

enter image description here

其中Sn表示的n項的和,n是術語(limit)和a1的數目是AP的第一項和d是常見的差異。所有這些信息均可在Wikipedia page for arithmetic progressions中找到。

1

解釋這一點的一種方法。

寫的所有號碼兩次,一次是向前推一次倒退,再加入這兩個系列:

1 + 2 + 3 + ... + n-2 + n-1 + n  
    n + n-1 + n-2 + ... + 3 + 2 + 1 
----------------------------------------- 
    n+1 + n+1 + n+1 + ... + n+1 + n+1 + n+1 

所以有NX(N + 1)的和,因爲你加了兩個拷貝,通過分這2,因此公式爲

sum = (n * (n+1))/2