實驗5-3 使用函式求奇數和 (15分)遞龜

符義的部落格發表於2020-11-19

本題要求實現一個函式,計算N個整數中所有奇數的和,同時實現一個判斷奇偶性的函式。

函式介面定義:

int even( int n );
int OddSum( int List[], int N );

其中函式even將根據使用者傳入的引數n的奇偶性返回相應值:當n為偶數時返回1,否則返回0。函式OddSum負責計算並返回傳入的N個整數List[]中所有奇數的和。

裁判測試程式樣例:

#include <stdio.h>

#define MAXN 10

int even( int n );
int OddSum( int List[], int N );

int main()
{    
    int List[MAXN], N, i;

    scanf("%d", &N);
    printf("Sum of ( ");
    for ( i=0; i<N; i++ ) {
        scanf("%d", &List[i]);
        if ( even(List[i])==0 )
            printf("%d ", List[i]);
    }
    printf(") = %d\n", OddSum(List, N));

    return 0;
}

/* 你的程式碼將被嵌在這裡 */
輸入樣例:
6
2 -3 7 88 0 15
輸出樣例:
Sum of ( -3 7 15 ) = 19
我知道這個題很簡單……但我想盡量用別的方法來寫,比如遞龜。遞龜,遞龜,遞烏龜。

int even( int n )
{
    if(n%2==0) return 1;
    return 0;
}
int OddSum( int List[], int N )
{
    if(N==0) return 0;
    else {
        if(even(List[N-1])==0) return List[N-1]+OddSum(List,N-1);
        else return OddSum(List,N-1);
    }
}

相關文章