|
計數和
最簡單的等差級數,首項為1,公差為1,前 n 項的和為
s = 1+2 +3 + ... + n
若遞迴函數 sum(n) = 1+2+3+...+n,
則 f(n-1) = 1+2+3+...+(n-1)
f(n) = f(n-1)+n
則下列函數的設計方式如下:
遞迴兩個主要因素:
A. f(n) 與 f(n-1) 的關係為 f(n) = f(n-1) + n
B. sum(1) = 1
迴圈版 | | 遞迴版 |
int main(){
int i,s,n;
scanf("%d",&n);
for(s=0,i=1;i<=n;i++)
s+=i;
printf("1+2+...+n = %d\n",s);
return(0);
} |
|
#include <stdio.h>
#include <stdlib.h>
int sum(int n){
if(n==1)
return(1);
else
return( sum(n-1)+n );
}
int main(){
int n;
scanf("%d",&n);
printf("1+2+...+n = %d\n",sum(n));
return(0);
} |
|